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

◆ enforce_consistency_of_geometry()

void pism::IceModel::enforce_consistency_of_geometry ( ConsistencyFlag  flag)
protected

Update the surface elevation and the flow-type mask when the geometry has changed.

This procedure should be called whenever necessary to maintain consistency of geometry.

For instance, it should be called when either ice thickness or bed elevation change. In particular we always want \(h = H + b\) to apply at grounded points, and, on the other hand, we want the mask to reflect that the ice is floating if the flotation criterion applies at a point.

If flag == REMOVE_ICEBERGS, also calls the code which removes icebergs, to avoid stress balance solver problems caused by ice that is not attached to the grounded ice sheet.

Definition at line 293 of file IceModel.cc.

References pism::Geometry::bed_elevation, pism::Geometry::cell_type, pism::array::Array2D< T >::copy_from(), pism::Geometry::ensure_consistency(), pism::Geometry::ice_area_specific_volume, pism::Geometry::ice_thickness, m_beddef, m_config, m_geometry, m_grid, m_ice_thickness_bc_mask, m_iceberg_remover, m_sea_level, pism::array::CellType1::next_to_ice(), REMOVE_ICEBERGS, and pism::Geometry::sea_level_elevation.

Referenced by front_retreat_step(), model_state_setup(), run(), and step().