PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
A class implementing a primitive surface model. More...
#include <Simple.hh>
Public Member Functions | |
Simple (std::shared_ptr< const Grid > g, std::shared_ptr< atmosphere::AtmosphereModel > atmosphere) | |
![]() | |
SurfaceModel (std::shared_ptr< const Grid > g) | |
SurfaceModel (std::shared_ptr< const Grid > g, std::shared_ptr< SurfaceModel > input) | |
SurfaceModel (std::shared_ptr< const Grid > g, std::shared_ptr< atmosphere::AtmosphereModel > atmosphere) | |
virtual | ~SurfaceModel ()=default |
void | init (const Geometry &geometry) |
void | update (const Geometry &geometry, double t, double dt) |
const array::Scalar & | accumulation () const |
Returns accumulation. | |
const array::Scalar & | layer_mass () const |
Returns mass held in the surface layer. | |
const array::Scalar & | layer_thickness () const |
Returns thickness of the surface layer. Could be used to compute surface elevation as a sum of elevation of the top surface of the ice and surface layer (firn, etc) thickness. | |
const array::Scalar & | liquid_water_fraction () const |
Returns the liquid water fraction of the ice at the top ice surface. | |
const array::Scalar & | mass_flux () const |
const array::Scalar & | melt () const |
Returns melt. | |
const array::Scalar & | runoff () const |
Returns runoff. | |
const array::Scalar & | temperature () const |
![]() | |
Component (std::shared_ptr< const Grid > grid) | |
virtual | ~Component ()=default |
DiagnosticList | diagnostics () const |
TSDiagnosticList | ts_diagnostics () const |
std::shared_ptr< const Grid > | grid () const |
const Time & | time () const |
const Profiling & | profiling () const |
void | define_model_state (const File &output) const |
Define model state variables in an output file. | |
void | write_model_state (const File &output) const |
Write model state variables to an output file. | |
MaxTimestep | max_timestep (double t) const |
Reports the maximum time-step the model can take at time t. | |
Protected Member Functions | |
virtual void | init_impl (const Geometry &geometry) |
virtual void | update_impl (const Geometry &geometry, double t, double dt) |
const array::Scalar & | mass_flux_impl () const |
const array::Scalar & | temperature_impl () const |
const array::Scalar & | accumulation_impl () const |
const array::Scalar & | melt_impl () const |
const array::Scalar & | runoff_impl () const |
![]() | |
virtual const array::Scalar & | layer_mass_impl () const |
virtual const array::Scalar & | layer_thickness_impl () const |
virtual const array::Scalar & | liquid_water_fraction_impl () const |
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 MaxTimestep | max_timestep_impl (double my_t) const |
virtual DiagnosticList | diagnostics_impl () const |
virtual TSDiagnosticList | ts_diagnostics_impl () const |
void | dummy_accumulation (const array::Scalar &smb, array::Scalar &result) |
void | dummy_melt (const array::Scalar &smb, array::Scalar &result) |
void | dummy_runoff (const array::Scalar &smb, array::Scalar &result) |
![]() | |
void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Protected Attributes | |
std::shared_ptr< array::Scalar > | m_mass_flux |
std::shared_ptr< array::Scalar > | m_temperature |
![]() | |
std::shared_ptr< array::Scalar > | m_liquid_water_fraction |
std::shared_ptr< array::Scalar > | m_layer_mass |
std::shared_ptr< array::Scalar > | m_layer_thickness |
std::shared_ptr< array::Scalar > | m_accumulation |
std::shared_ptr< array::Scalar > | m_melt |
std::shared_ptr< array::Scalar > | m_runoff |
std::shared_ptr< SurfaceModel > | m_input_model |
std::shared_ptr< atmosphere::AtmosphereModel > | m_atmosphere |
![]() | |
const std::shared_ptr< const Grid > | m_grid |
grid used by this component | |
const Config::ConstPtr | m_config |
configuration database used by this component | |
const units::System::Ptr | m_sys |
unit system used by this component | |
const Logger::ConstPtr | m_log |
logger (for easy access) | |
Additional Inherited Members | |
![]() | |
enum | RegriddingFlag { REGRID_WITHOUT_REGRID_VARS , NO_REGRID_WITHOUT_REGRID_VARS } |
This flag determines whether a variable is read from the -regrid_file file even if it is not listed among variables in -regrid_vars . More... | |
![]() | |
static std::shared_ptr< array::Scalar > | allocate_layer_mass (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_layer_thickness (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_liquid_water_fraction (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_mass_flux (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_temperature (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_accumulation (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_melt (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_runoff (std::shared_ptr< const Grid > grid) |
A class implementing a primitive surface model.
This is an "invisible" surface processes model which "passes through" information from the atmosphere above directly to the ice below the surface layers. It implements two modeling choices:
The second choice means that the upper boundary condition of the conservation of energy scheme for the ice fluid is exactly the 2m air temperature.