19 #ifndef _SSB_MODIFIER_H_
20 #define _SSB_MODIFIER_H_
22 #include "pism/util/iceModelVec.hh"
23 #include "pism/util/Component.hh"
24 #include "pism/util/EnthalpyConverter.hh"
34 namespace stressbalance {
48 bool full_update) = 0;
62 std::shared_ptr<const rheology::FlowLaw>
flow_law()
const;
A class defining a common interface for most PISM sub-models.
std::shared_ptr< EnthalpyConverter > Ptr
std::shared_ptr< const IceGrid > ConstPtr
A class for storing and accessing internal staggered-grid 2D fields. Uses dof=2 storage....
A virtual class collecting methods common to ice and bedrock 3D fields.
virtual void update(const IceModelVec2V &sliding_velocity, const Inputs &inputs, bool full_update)
Distribute the input velocity throughout the column.
virtual ~ConstantInColumn()=default
ConstantInColumn(IceGrid::ConstPtr g)
The trivial Shallow Stress Balance modifier.
const IceModelVec3 & velocity_v() const
virtual ~SSB_Modifier()=default
SSB_Modifier(IceGrid::ConstPtr g)
std::shared_ptr< const rheology::FlowLaw > flow_law() const
IceModelVec2Stag m_diffusive_flux
EnthalpyConverter::Ptr m_EC
double max_diffusivity() const
Get the max diffusivity (for the adaptive time-stepping).
virtual std::string stdout_report() const
const IceModelVec2Stag & diffusive_flux()
Get the diffusive (SIA) vertically-averaged flux on the staggered grid.
std::shared_ptr< rheology::FlowLaw > m_flow_law
virtual void update(const IceModelVec2V &sliding_velocity, const Inputs &inputs, bool full_update)=0
const IceModelVec3 & velocity_u() const
Shallow stress balance modifier (such as the non-sliding SIA).