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

◆ enforce_bounds()

void pism::hydrology::Hydrology::enforce_bounds ( const array::CellType cell_type,
const array::Scalar no_model_mask,
double  max_thickness,
double  ocean_water_thickness,
array::Scalar water_thickness,
array::Scalar grounded_margin_change,
array::Scalar grounding_line_change,
array::Scalar conservation_error_change,
array::Scalar no_model_mask_change 
)
protected

Correct the new water thickness based on boundary requirements.

At ice free locations and ocean locations we require that water thicknesses (i.e. both the transportable water thickness \(W\) and the till water thickness \(W_{till}\)) be zero at the end of each time step. Also we require that any negative water thicknesses be set to zero (i.e. we do projection to enforce lower bound).

This method should be called once for each thickness field which needs to be processed. This method alters the field water_thickness in-place.

Parameters
[in]cell_typecell type mask
[in]no_model_mask(optional) mask of zeros and ones, zero within the modeling domain, one outside
[in]max_thicknessmaximum allowed water thickness (use a zero or a negative value to disable)
[in,out]water_thicknessadjusted water thickness (till storage or the transport system)
[in,out]grounded_margin_changechange in water thickness at the grounded margin
[in,out]grounding_line_changechange in water thickness at the grounding line
[in,out]conservation_error_changechange in water thickness due to mass conservation errors
[in,out]no_model_mask_changechange in water thickness outside the modeling domain (regional models)

Definition at line 669 of file Hydrology.cc.

References pism::array::Array2D< T >::add(), pism::array::CellType::ice_free_land(), pism::array::CellType::ice_free_ocean(), pism::Component::m_config, pism::Component::m_grid, and pism::array::CellType::ocean().

Referenced by pism::hydrology::Distributed::update_impl(), pism::hydrology::NullTransport::update_impl(), and pism::hydrology::Routing::update_impl().