20 #ifndef EMPTYINGPROBLEM_H
21 #define EMPTYINGPROBLEM_H
23 #include "pism/util/Component.hh"
24 #include "pism/util/array/Scalar.hh"
25 #include "pism/util/array/Staggered.hh"
26 #include "pism/util/array/Vector.hh"
40 const array::Scalar &water_input_rate,
bool recompute_potential =
true);
A class defining a common interface for most PISM sub-models.
"Cell type" mask. Adds convenience methods to array::Scalar.
A class for storing and accessing internal staggered-grid 2D fields. Uses dof=2 storage....
virtual ~EmptyingProblem()=default
void compute_velocity(const array::Scalar &hydraulic_potential, const array::Scalar1 &mask, array::Staggered &result) const
const array::Scalar & sinks() const
array::Scalar1 m_domain_mask
array::Scalar m_adjustment
const array::Vector & flux() const
const array::Scalar & adjustment() const
void compute_mask(const array::CellType &cell_type, const array::Scalar *no_model_mask, array::Scalar &result) const
DiagnosticList diagnostics() const
const array::Scalar & potential() const
void compute_potential(const array::Scalar &ice_thickness, const array::Scalar &ice_bottom_surface, const array::Scalar &domain_mask, array::Scalar1 &result)
EmptyingProblem(std::shared_ptr< const Grid > g)
const array::Scalar & remaining_water_thickness() const
virtual void compute_raw_potential(const array::Scalar &ice_thickness, const array::Scalar &ice_bottom_surface, array::Scalar &result) const
array::Staggered1 m_Vstag
void update(const Geometry &geometry, const array::Scalar *no_model_mask, const array::Scalar &water_input_rate, bool recompute_potential=true)
array::Scalar1 m_potential
array::Scalar m_bottom_surface
const array::Vector & effective_water_velocity() const
void hydraulic_potential(const array::Scalar &W, const array::Scalar &P, const array::Scalar &sea_level, const array::Scalar &bed, const array::Scalar &ice_thickness, array::Scalar &result)
Compute the hydraulic potential.
std::map< std::string, Diagnostic::Ptr > DiagnosticList
void ice_bottom_surface(const Geometry &geometry, array::Scalar &result)