19 #ifndef _SSB_MODIFIER_H_
20 #define _SSB_MODIFIER_H_
22 #include "pism/util/array/Staggered.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
A virtual class collecting methods common to ice and bedrock 3D fields.
A class for storing and accessing internal staggered-grid 2D fields. Uses dof=2 storage....
ConstantInColumn(std::shared_ptr< const Grid > g)
virtual ~ConstantInColumn()=default
virtual void update(const array::Vector &sliding_velocity, const Inputs &inputs, bool full_update)
Distribute the input velocity throughout the column.
The trivial Shallow Stress Balance modifier.
const array::Array3D & velocity_u() const
virtual void update(const array::Vector &sliding_velocity, const Inputs &inputs, bool full_update)=0
virtual ~SSB_Modifier()=default
SSB_Modifier(std::shared_ptr< const Grid > g)
const array::Staggered & diffusive_flux()
Get the diffusive (SIA) vertically-averaged flux on the staggered grid.
std::shared_ptr< const rheology::FlowLaw > flow_law() const
const array::Array3D & velocity_v() const
EnthalpyConverter::Ptr m_EC
double max_diffusivity() const
Get the max diffusivity (for the adaptive time-stepping).
virtual std::string stdout_report() const
std::shared_ptr< rheology::FlowLaw > m_flow_law
array::Staggered1 m_diffusive_flux
Shallow stress balance modifier (such as the non-sliding SIA).