PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ smoothed_thk()

void pism::stressbalance::BedSmoother::smoothed_thk ( const array::Scalar usurf,
const array::Scalar thk,
const array::CellType2 mask,
array::Scalar result 
) const

Computes a smoothed thickness map.

The result thksmooth is the difference between the given upper surface elevation (usurf) and the stored smoothed bed topography (topgsmooth), except where the given original thickness (thk) is zero. In places where the original thickness is zero, the result thksmooth is also set to zero.

Ghosted values are updated directly and no communication occurs. In fact, we assume usurf, thk, and thksmooth all have stencil width at least equal to GHOSTS. We check whether topgsmooth, which has stencil width maxGHOSTS, has at least GHOSTS stencil width, and throw an error if not.

Call preprocess_bed() first.

Definition at line 282 of file BedSmoother.cc.

References pism::ParallelSection::check(), pism::ParallelSection::failed(), pism::RuntimeError::formatted(), pism::array::CellType::grounded(), m_grid, m_maxtl, m_topgsmooth, pism::array::max(), PISM_ERROR_LOCATION, and pism::array::Array::stencil_width().

Referenced by pism::stressbalance::SIAFD::compute_diffusivity(), and pism::stressbalance::SIAFD::compute_I().