PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
#include <NullTransport.hh>
Public Member Functions | |
NullTransport (std::shared_ptr< const Grid > g) | |
virtual | ~NullTransport ()=default |
![]() | |
Hydrology (std::shared_ptr< const Grid > g) | |
virtual | ~Hydrology ()=default |
void | restart (const File &input_file, int record) |
void | bootstrap (const File &input_file, const array::Scalar &ice_thickness) |
void | init (const array::Scalar &W_till, const array::Scalar &W, const array::Scalar &P) |
void | update (double t, double dt, const Inputs &inputs) |
const array::Scalar & | till_water_thickness () const |
Return the effective thickness of the water stored in till. | |
const array::Scalar & | subglacial_water_thickness () const |
Return the effective thickness of the transportable basal water layer. | |
const array::Scalar & | overburden_pressure () const |
const array::Scalar & | surface_input_rate () const |
const array::Vector & | flux () const |
const array::Scalar & | mass_change () const |
const array::Scalar & | mass_change_at_grounded_margin () const |
const array::Scalar & | mass_change_at_grounding_line () const |
const array::Scalar & | mass_change_at_domain_boundary () const |
const array::Scalar & | mass_change_due_to_conservation_error () const |
const array::Scalar & | mass_change_due_to_input () const |
const array::Scalar & | mass_change_due_to_lateral_flow () 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 | restart_impl (const File &input_file, int record) |
virtual void | bootstrap_impl (const File &input_file, const array::Scalar &ice_thickness) |
virtual void | init_impl (const array::Scalar &W_till, const array::Scalar &W, const array::Scalar &P) |
virtual MaxTimestep | max_timestep_impl (double t) const |
virtual void | update_impl (double t, double dt, const Inputs &inputs) |
Solves an implicit step of a highly-simplified ODE. | |
void | diffuse_till_water (double dt) |
![]() | |
virtual std::map< std::string, Diagnostic::Ptr > | diagnostics_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). | |
void | compute_overburden_pressure (const array::Scalar &ice_thickness, array::Scalar &result) const |
Update the overburden pressure from ice thickness. | |
void | compute_surface_input_rate (const array::CellType &mask, const array::Scalar *surface_input_rate, array::Scalar &result) |
void | compute_basal_melt_rate (const array::CellType &mask, const array::Scalar &basal_melt_rate, array::Scalar &result) |
void | enforce_bounds (const array::CellType &cell_type, const array::Scalar *no_model_mask, double max_thickness, double ocean_water_thickness, array::Scalar &water_thickness, array::Scalar &grounded_margin_change, array::Scalar &grounding_line_change, array::Scalar &conservation_error_change, array::Scalar &no_model_mask_change) |
Correct the new water thickness based on boundary requirements. | |
![]() | |
virtual TSDiagnosticList | ts_diagnostics_impl () const |
void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Private Member Functions | |
void | initialization_message () const |
Private Attributes | |
bool | m_diffuse_tillwat |
double | m_diffusion_time |
double | m_diffusion_distance |
double | m_tillwat_max |
double | m_tillwat_decay_rate |
array::Scalar1 | m_Wtill_old |
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... | |
![]() | |
array::Vector | m_Q |
array::Scalar | m_Wtill |
effective thickness of basal water stored in till | |
array::Scalar1 | m_W |
effective thickness of transportable basal water | |
array::Scalar | m_Pover |
overburden pressure | |
array::Scalar | m_surface_input_rate |
array::Scalar | m_basal_melt_rate |
array::Scalar | m_flow_change_incremental |
array::Scalar | m_conservation_error_change |
array::Scalar | m_grounded_margin_change |
array::Scalar | m_grounding_line_change |
array::Scalar | m_input_change |
array::Scalar | m_no_model_mask_change |
array::Scalar | m_total_change |
array::Scalar | m_flow_change |
![]() | |
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) | |
The PISM minimal model has till, but water that exceeds the capacity of the till is not conserved. There is no model for lateral transport.
This is the minimum functional derived class. It updates till water thickness. It implements a version of the "undrained plastic bed" model of [Tulaczyketal2000b], but with non-conserved drainage.
This model can give no meaningful report on conservation errors.
This talk illustrates a "till-can" metaphor applicable to this model: http://www2.gi.alaska.edu/snowice/glaciers/iceflow/bueler-igs-fairbanks-june2012.pdf
Definition at line 40 of file NullTransport.hh.