19#include "pism/earth/BedDef.hh"
20#include "pism/util/Grid.hh"
21#include "pism/util/ConfigInterface.hh"
27 :
BedDef(grid,
"pointwise isostasy"), m_load_last(m_grid,
"load_last") {
66 mantle_density =
m_config->get_number(
"bed_deformation.mantle_density"),
67 load_density =
m_config->get_number(
"constants.ice.density"),
68 f = load_density / mantle_density;
76 for (
auto p =
m_grid->points(); p; p.next()) {
77 const int i = p.i(), j = p.j();
const Config::ConstPtr m_config
configuration database used by this component
const std::shared_ptr< const Grid > m_grid
grid used by this component
void failed()
Indicates a failure of a parallel section.
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
void copy_from(const Array2D< T > &source)
void set(double c)
Result: v[j] <- c for all j.
void inc_state_counter()
Increment the object state counter.
array::Scalar m_topg_last
bed elevation at the time of the last update
array::Scalar2 m_topg
current bed elevation
const array::Scalar & bed_elevation() const
PISM bed deformation model (base class).
void bootstrap_impl(const array::Scalar &bed_elevation, const array::Scalar &bed_uplift, const array::Scalar &ice_thickness, const array::Scalar &sea_level_elevation)
array::Scalar m_load_last
last ice load (ice-equivalent thickness)
PointwiseIsostasy(std::shared_ptr< const Grid > g)
void init_impl(const InputOptions &opts, const array::Scalar &ice_thickness, const array::Scalar &sea_level_elevation)
void update_impl(const array::Scalar &load, double t, double dt)
Updates the pointwise isostasy model.
void accumulate_load(const array::Scalar &bed_elevation, const array::Scalar &ice_thickness, const array::Scalar &sea_level_elevation, double C, array::Scalar &result)