PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Private Member Functions | Private Attributes | List of all members
pism::surface::DEBMSimple Class Reference

A class implementing a temperature-index (positive degree-day) scheme to compute melt and runoff, and thus surface mass balance, from precipitation and air temperature. More...

#include <DEBMSimple.hh>

+ Inheritance diagram for pism::surface::DEBMSimple:

Public Member Functions

 DEBMSimple (std::shared_ptr< const Grid > g, std::shared_ptr< atmosphere::AtmosphereModel > input)
 
virtual ~DEBMSimple ()=default
 
const array::Scalarsnow_depth () const
 
const array::Scalarair_temp_sd () const
 
const array::Scalaraccumulation_impl () const
 
const array::Scalarmelt_impl () const
 
const array::Scalarrunoff_impl () const
 
const array::Scalarinsolation_driven_melt () const
 
const array::Scalartemperature_driven_melt () const
 
const array::Scalaroffset_melt () const
 
const array::Scalarsurface_albedo () const
 
const array::Scalaratmosphere_transmissivity () const
 
const DEBMSimplePointwisepointwise_model () const
 
- Public Member Functions inherited from pism::surface::SurfaceModel
 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::Scalaraccumulation () const
 Returns accumulation. More...
 
const array::Scalarlayer_mass () const
 Returns mass held in the surface layer. More...
 
const array::Scalarlayer_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. More...
 
const array::Scalarliquid_water_fraction () const
 Returns the liquid water fraction of the ice at the top ice surface. More...
 
const array::Scalarmass_flux () const
 
const array::Scalarmelt () const
 Returns melt. More...
 
const array::Scalarrunoff () const
 Returns runoff. More...
 
const array::Scalartemperature () const
 
- Public Member Functions inherited from pism::Component
 Component (std::shared_ptr< const Grid > grid)
 
virtual ~Component ()=default
 
DiagnosticList diagnostics () const
 
TSDiagnosticList ts_diagnostics () const
 
std::shared_ptr< const Gridgrid () const
 
const Timetime () const
 
const Profilingprofiling () const
 
void define_model_state (const File &output) const
 Define model state variables in an output file. More...
 
void write_model_state (const File &output) const
 Write model state variables to an output file. More...
 
MaxTimestep max_timestep (double t) const
 Reports the maximum time-step the model can take at time t. More...
 

Private Member Functions

virtual void init_impl (const Geometry &geometry)
 
virtual void update_impl (const Geometry &geometry, double t, double dt)
 
virtual MaxTimestep max_timestep_impl (double t) const
 
virtual void define_model_state_impl (const File &output) const
 The default (empty implementation). More...
 
virtual void write_model_state_impl (const File &output) const
 The default (empty implementation). More...
 
virtual DiagnosticList diagnostics_impl () const
 
virtual const array::Scalarmass_flux_impl () const
 
virtual const array::Scalartemperature_impl () const
 
double compute_next_balance_year_start (double time)
 
double snow_accumulation (double T, double P) const
 Extracts snow accumulation from mixed (snow and rain) precipitation using a temperature threshold with a linear transition. More...
 
unsigned int timeseries_length (double dt) const
 The number of points for temperature and precipitation time-series. More...
 

Private Attributes

DEBMSimplePointwise m_model
 
double m_next_balance_year_start
 
array::Scalar m_mass_flux
 cached surface mass balance rate More...
 
std::shared_ptr< array::Scalarm_temperature
 
array::Scalar m_snow_depth
 snow depth (reset once a year) More...
 
std::shared_ptr< array::Forcingm_air_temp_sd
 standard deviation of the daily variability of the air temperature More...
 
std::shared_ptr< array::Scalarm_accumulation
 total accumulation during the last time step More...
 
std::shared_ptr< array::Scalarm_melt
 total melt during the last time step More...
 
std::shared_ptr< array::Scalarm_runoff
 total runoff during the last time step More...
 
array::Scalar m_temperature_driven_melt
 total temperature melt during the last time step More...
 
array::Scalar m_insolation_driven_melt
 total insolation melt during the last time step More...
 
array::Scalar m_offset_melt
 total offset_melt during the last timestep More...
 
array::Scalar m_surface_albedo
 albedo field More...
 
std::shared_ptr< array::Forcingm_input_albedo
 if albedo is given as input field More...
 
array::Scalar m_transmissivity
 transmissivity field More...
 
double m_year_length
 
unsigned int m_n_per_year
 number of small time steps per year More...
 
bool m_sd_use_param
 
double m_sd_param_a
 
double m_sd_param_b
 
bool m_precip_as_snow
 interpret all the precipitation as snow (no rain) More...
 
double m_Tmin
 the temperature below which all precipitation is snow More...
 
double m_Tmax
 the temperature above which all precipitation is rain More...
 

Additional Inherited Members

- Protected Types inherited from pism::Component
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...
 
- Protected Member Functions inherited from pism::surface::SurfaceModel
virtual const array::Scalarlayer_mass_impl () const
 
virtual const array::Scalarlayer_thickness_impl () const
 
virtual const array::Scalarliquid_water_fraction_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)
 
- Protected Member Functions inherited from pism::Component
void regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS)
 
- Static Protected Member Functions inherited from pism::surface::SurfaceModel
static std::shared_ptr< array::Scalarallocate_layer_mass (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_layer_thickness (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_liquid_water_fraction (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_mass_flux (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_temperature (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_accumulation (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_melt (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_runoff (std::shared_ptr< const Grid > grid)
 
- Protected Attributes inherited from pism::surface::SurfaceModel
std::shared_ptr< array::Scalarm_liquid_water_fraction
 
std::shared_ptr< array::Scalarm_layer_mass
 
std::shared_ptr< array::Scalarm_layer_thickness
 
std::shared_ptr< array::Scalarm_accumulation
 
std::shared_ptr< array::Scalarm_melt
 
std::shared_ptr< array::Scalarm_runoff
 
std::shared_ptr< SurfaceModelm_input_model
 
std::shared_ptr< atmosphere::AtmosphereModelm_atmosphere
 
- Protected Attributes inherited from pism::Component
const std::shared_ptr< const Gridm_grid
 grid used by this component More...
 
const Config::ConstPtr m_config
 configuration database used by this component More...
 
const units::System::Ptr m_sys
 unit system used by this component More...
 
const Logger::ConstPtr m_log
 logger (for easy access) More...
 

Detailed Description

A class implementing a temperature-index (positive degree-day) scheme to compute melt and runoff, and thus surface mass balance, from precipitation and air temperature.

Temperature-index schemes are far from perfect as a way of modeling surface mass balance on ice sheets which experience surface melt, but they are known to have reasonable data requirements and to do a good job when tuned appropriately [Hock05].

Definition at line 39 of file DEBMSimple.hh.


The documentation for this class was generated from the following files: