20 #ifndef __PISMSurfaceModel_hh
21 #define __PISMSurfaceModel_hh
28 #include "pism/util/Component.hh"
32 namespace atmosphere {
33 class AtmosphereModel;
IceGrid::ConstPtr grid() const
A class defining a common interface for most PISM sub-models.
High-level PISM I/O class.
std::shared_ptr< const IceGrid > ConstPtr
std::shared_ptr< IceModelVec2S > Ptr
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
static IceModelVec2S::Ptr allocate_mass_flux(IceGrid::ConstPtr grid)
const IceModelVec2S & liquid_water_fraction() const
Returns the liquid water fraction of the ice at the top ice surface.
IceModelVec2S::Ptr m_liquid_water_fraction
void update(const Geometry &geometry, double t, double dt)
std::shared_ptr< atmosphere::AtmosphereModel > m_atmosphere
const IceModelVec2S & temperature() const
virtual DiagnosticList diagnostics_impl() const
virtual const IceModelVec2S & temperature_impl() const
virtual void update_impl(const Geometry &geometry, double t, double dt)
void init(const Geometry &geometry)
virtual void write_model_state_impl(const File &output) const
The default (empty implementation).
virtual void define_model_state_impl(const File &output) const
The default (empty implementation).
static IceModelVec2S::Ptr allocate_liquid_water_fraction(IceGrid::ConstPtr grid)
IceModelVec2S::Ptr m_melt
static IceModelVec2S::Ptr allocate_melt(IceGrid::ConstPtr grid)
const IceModelVec2S & layer_thickness() const
Returns thickness of the surface layer. Could be used to compute surface elevation as a sum of elevat...
virtual MaxTimestep max_timestep_impl(double my_t) const
SurfaceModel(IceGrid::ConstPtr g)
IceModelVec2S::Ptr m_layer_mass
virtual const IceModelVec2S & melt_impl() const
IceModelVec2S::Ptr m_accumulation
const IceModelVec2S & melt() const
Returns melt.
static IceModelVec2S::Ptr allocate_temperature(IceGrid::ConstPtr grid)
std::shared_ptr< SurfaceModel > m_input_model
void dummy_accumulation(const IceModelVec2S &smb, IceModelVec2S &result)
const IceModelVec2S & mass_flux() const
static IceModelVec2S::Ptr allocate_accumulation(IceGrid::ConstPtr grid)
virtual ~SurfaceModel()=default
virtual const IceModelVec2S & mass_flux_impl() const
static IceModelVec2S::Ptr allocate_layer_mass(IceGrid::ConstPtr grid)
const IceModelVec2S & layer_mass() const
Returns mass held in the surface layer.
virtual TSDiagnosticList ts_diagnostics_impl() const
static IceModelVec2S::Ptr allocate_runoff(IceGrid::ConstPtr grid)
const IceModelVec2S & runoff() const
Returns runoff.
virtual const IceModelVec2S & layer_mass_impl() const
virtual const IceModelVec2S & liquid_water_fraction_impl() const
const IceModelVec2S & accumulation() const
Returns accumulation.
IceModelVec2S::Ptr m_runoff
virtual void init_impl(const Geometry &geometry)
void dummy_runoff(const IceModelVec2S &smb, IceModelVec2S &result)
virtual const IceModelVec2S & runoff_impl() const
IceModelVec2S::Ptr m_layer_thickness
virtual const IceModelVec2S & accumulation_impl() const
static IceModelVec2S::Ptr allocate_layer_thickness(IceGrid::ConstPtr grid)
virtual const IceModelVec2S & layer_thickness_impl() const
void dummy_melt(const IceModelVec2S &smb, IceModelVec2S &result)
The interface of PISM's surface models.
std::map< std::string, TSDiagnostic::Ptr > TSDiagnosticList
std::map< std::string, Diagnostic::Ptr > DiagnosticList