19 #ifndef _PISMBEDTHERMALUNIT_H_
20 #define _PISMBEDTHERMALUNIT_H_
22 #include "pism/util/Component.hh"
24 #include "pism/util/Diagnostic.hh"
37 BTUGrid(std::shared_ptr<const Context> ctx);
104 static std::shared_ptr<BedThermalUnit>
FromOptions(std::shared_ptr<const Grid>
g,
105 std::shared_ptr<const Context> ctx);
111 typedef std::shared_ptr<BedThermalUnit>
Ptr;
112 typedef std::shared_ptr<const BedThermalUnit>
ConstPtr;
123 double t,
double dt);
126 double depth()
const;
128 unsigned int Mz()
const;
136 double t,
double dt) = 0;
158 virtual std::shared_ptr<array::Array>
compute_impl()
const;
A class defining a common interface for most PISM sub-models.
A template derived from Diagnostic, adding a "Model".
High-level PISM I/O class.
BTU_geothermal_flux_at_ground_level(const BedThermalUnit *m)
virtual std::shared_ptr< array::Array > compute_impl() const
BedThermalUnit(std::shared_ptr< const Grid > g)
virtual void initialize_bottom_surface_flux()
std::shared_ptr< const BedThermalUnit > ConstPtr
void update(const array::Scalar &bedrock_top_temperature, double t, double dt)
const array::Scalar & flux_through_top_surface() const
Return the upward heat flux through the top surface of the bedrock thermal layer.
virtual ~BedThermalUnit()=default
array::Scalar m_bottom_surface_flux
upward heat flux through the bottom surface of the bed thermal layer
virtual void init_impl(const InputOptions &opts)
Initialize the bedrock thermal unit.
void init(const InputOptions &opts)
virtual double depth_impl() const =0
static std::shared_ptr< BedThermalUnit > FromOptions(std::shared_ptr< const Grid > g, std::shared_ptr< const Context > ctx)
virtual void define_model_state_impl(const File &output) const
The default (empty implementation).
virtual void write_model_state_impl(const File &output) const
The default (empty implementation).
virtual double vertical_spacing_impl() const =0
virtual DiagnosticList diagnostics_impl() const
virtual unsigned int Mz_impl() const =0
double vertical_spacing() const
const array::Scalar & flux_through_bottom_surface() const
Return the upward heat flux through the bottom surface of the bedrock thermal layer.
array::Scalar m_top_surface_flux
upward heat flux through the top surface of the bed thermal layer
std::shared_ptr< BedThermalUnit > Ptr
virtual void update_impl(const array::Scalar &bedrock_top_temperature, double t, double dt)=0
Given the temperature of the top of the bedrock, for the duration of one time-step,...
std::map< std::string, Diagnostic::Ptr > DiagnosticList
static BTUGrid FromOptions(std::shared_ptr< const Context > ctx)
BTUGrid(std::shared_ptr< const Context > ctx)