19 #ifndef _DISTRIBUTED_H_
20 #define _DISTRIBUTED_H_
22 #include "pism/hydrology/Routing.hh"
High-level PISM I/O class.
"Cell type" mask. Adds convenience methods to array::Scalar.
void write_model_state_impl(const File &output) const
The default (empty implementation).
virtual void bootstrap_impl(const File &input_file, const array::Scalar &ice_thickness)
void define_model_state_impl(const File &output) const
The default (empty implementation).
void update_P(double dt, const array::CellType &cell_type, const array::Scalar &sliding_speed, const array::Scalar &surface_input_rate, const array::Scalar &basal_melt_rate, const array::Scalar &P_overburden, const array::Scalar &Wtill, const array::Scalar &Wtill_new, const array::Scalar &P, const array::Scalar1 &W, const array::Staggered1 &Ws, const array::Staggered1 &K, const array::Staggered1 &Q, array::Scalar &P_new) const
virtual void init_impl(const array::Scalar &W_till, const array::Scalar &W, const array::Scalar &P)
std::map< std::string, TSDiagnostic::Ptr > ts_diagnostics_impl() const
void P_from_W_steady(const array::Scalar &W, const array::Scalar &P_overburden, const array::Scalar &sliding_speed, array::Scalar &result)
Compute functional relationship P(W) which applies only in steady state.
const array::Scalar & subglacial_water_pressure() const
Copies the P state variable which is the modeled water pressure.
void initialization_message() const
virtual ~Distributed()=default
Distributed(std::shared_ptr< const Grid > g)
void update_impl(double t, double dt, const Inputs &inputs)
Update the model state variables W,P by running the subglacial hydrology model.
virtual double max_timestep_P_diff(double phi0, double dt_diff_w) const
void check_P_bounds(array::Scalar &P, const array::Scalar &P_o, bool enforce_upper)
virtual void restart_impl(const File &input_file, int record)
The PISM subglacial hydrology model for a distributed linked-cavity system.
const array::Scalar & surface_input_rate() const
A subglacial hydrology model which assumes water pressure equals overburden pressure.
static double K(double psi_x, double psi_y, double speed, double epsilon)