Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages

◆ is_marginal()

static bool pism::stressbalance::is_marginal ( int  i,
int  j,
const array::CellType1 cell_type,
bool  ssa_dirichlet_bc 
)
static

Checks if a cell is near or at the ice front.

You need to create array::AccessScope object and add cell_type to it.

Note that a cell is a CFBC location of one of four direct neighbors is ice-free.

If one of the diagonal neighbors is ice-free we don't use the CFBC, but we do need to compute weights used in the SSA discretization (see assemble_matrix()) to avoid differencing across interfaces between icy and ice-free cells.

This method ensures that checks in assemble_rhs() and assemble_matrix() are consistent.

Definition at line 270 of file SSAFDBase.cc.

References pism::array::CellType1::box_int(), pism::mask::ice_free(), pism::mask::ice_free_ocean(), and pism::mask::icy().

Referenced by pism::stressbalance::SSAFDBase::assemble_rhs(), and pism::stressbalance::SSAFDBase::fd_operator().