23 #include "pism/util/Component.hh"
25 #include "pism/util/array/Scalar.hh"
26 #include "pism/util/array/Array3D.hh"
27 #include "pism/util/array/CellType.hh"
32 namespace stressbalance {
67 void sum(MPI_Comm com);
78 std::shared_ptr<const stressbalance::StressBalance> stress_balance);
std::shared_ptr< const Grid > grid() const
void regrid(const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS)
A class defining a common interface for most PISM sub-models.
High-level PISM I/O class.
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
A virtual class collecting methods common to ice and bedrock 3D fields.
"Cell type" mask. Adds convenience methods to array::Scalar.
EnergyModelStats & operator+=(const EnergyModelStats &other)
unsigned int reduced_accuracy_counter
double liquified_ice_volume
unsigned int low_temperature_counter
unsigned int bulge_counter
void init_enthalpy(const File &input_file, bool regrid, int record)
Initialize enthalpy by reading it from a file, or by reading temperature and liquid water fraction,...
const EnergyModelStats & stats() const
void update(double t, double dt, const Inputs &inputs)
const array::Array3D & enthalpy() const
void bootstrap(const File &input_file, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
Bootstrapping using heuristics.
void initialize(const array::Scalar &basal_melt_rate, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
Initialize using formulas (for runs using synthetic data).
virtual MaxTimestep max_timestep_impl(double t) const
virtual void define_model_state_impl(const File &output) const =0
The default (empty implementation).
std::shared_ptr< const stressbalance::StressBalance > m_stress_balance
const std::string & stdout_flags() const
virtual void initialize_impl(const array::Scalar &basal_melt_rate, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)=0
void restart(const File &input_file, int record)
virtual void restart_impl(const File &input_file, int record)=0
virtual DiagnosticList diagnostics_impl() const
const array::Scalar & basal_melt_rate() const
Basal melt rate in grounded areas. (It is set to zero elsewhere.)
array::Array3D m_ice_enthalpy
virtual void bootstrap_impl(const File &input_file, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)=0
EnergyModel(std::shared_ptr< const Grid > grid, std::shared_ptr< const stressbalance::StressBalance > stress_balance)
virtual void write_model_state_impl(const File &output) const =0
The default (empty implementation).
std::string m_stdout_flags
virtual void update_impl(double t, double dt, const Inputs &inputs)=0
virtual TSDiagnosticList ts_diagnostics_impl() const
array::Scalar m_basal_melt_rate
void regrid_enthalpy()
Regrid enthalpy from the -regrid_file.
bool marginal(const array::Scalar1 &thickness, int i, int j, double threshold)
std::map< std::string, TSDiagnostic::Ptr > TSDiagnosticList
std::map< std::string, Diagnostic::Ptr > DiagnosticList