20#include "pism/frontretreat/calving/FloatKill.hh"
22#include "pism/util/Mask.hh"
23#include "pism/util/Grid.hh"
24#include "pism/util/array/CellType.hh"
25#include "pism/util/Logger.hh"
32 m_old_mask(m_grid,
"old_mask") {
39 "* Initializing calving using the floatation criterion (float_kill)...\n");
43 " [only cells at the ice margin are calved during a given time step]\n");
48 " [keeping floating cells near the grounding line]\n");
70 for (
auto p :
m_grid->points()) {
71 const int i = p.i(), j = p.j();
82 ice_thickness(i, j) = 0.0;
std::shared_ptr< const Config > m_config
configuration database used by this component
const std::shared_ptr< const Grid > m_grid
grid used by this component
std::shared_ptr< const Logger > m_log
logger (for easy access)
A class defining a common interface for most PISM sub-models.
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
void copy_from(const Array2D< T > &source)
void update_ghosts()
Updates ghost points.
bool next_to_grounded_ice(int i, int j) const
bool next_to_ice_free_ocean(int i, int j) const
bool floating_ice(int i, int j) const
array::CellType1 m_old_mask
FloatKill(std::shared_ptr< const Grid > g)
bool m_calve_near_grounding_line
void update(array::Scalar &cell_type, array::Scalar &ice_thickness)