PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
#include <iceCompModel.hh>
Public Member Functions | |
IceCompModel (std::shared_ptr< Grid > g, std::shared_ptr< Context > ctx, int mytest) | |
virtual | ~IceCompModel () |
virtual void | allocate_storage () |
Allocate all Arrays defined in IceModel. More... | |
virtual void | allocate_bedrock_thermal_unit () |
Decide which bedrock thermal unit to use. More... | |
virtual void | allocate_bed_deformation () |
virtual void | allocate_couplers () |
virtual void | allocate_energy_model () |
void | bootstrap_2d (const File &input_file) __attribute__((noreturn)) |
virtual void | initialize_2d () |
void | reportErrors () |
Public Member Functions inherited from pism::IceModel | |
IceModel (std::shared_ptr< Grid > grid, const std::shared_ptr< Context > &context) | |
virtual | ~IceModel () |
std::shared_ptr< Grid > | grid () const |
Return the grid used by this model. More... | |
std::shared_ptr< Context > | ctx () const |
Return the context this model is running in. More... | |
void | init () |
Manage the initialization of the IceModel object. More... | |
IceModelTerminationReason | run () |
IceModelTerminationReason | run_to (double run_end) |
virtual void | save_results () |
Save model state in NetCDF format. More... | |
void | list_diagnostics (const std::string &list_type) const |
const array::Scalar & | calving () const |
const array::Scalar & | frontal_melt () const |
const array::Scalar & | forced_retreat () const |
double | ice_volume_temperate (double thickness_threshold) const |
Computes the temperate ice volume, in m^3. More... | |
double | ice_volume_cold (double thickness_threshold) const |
Computes the cold ice volume, in m^3. More... | |
double | temperate_base_area (double thickness_threshold) const |
Computes area of basal ice which is temperate, in m^2. More... | |
double | cold_base_area (double thickness_threshold) const |
Computes area of basal ice which is cold, in m^2. More... | |
const stressbalance::StressBalance * | stress_balance () const |
const ocean::OceanModel * | ocean_model () const |
const energy::BedThermalUnit * | bedrock_thermal_model () const |
const energy::EnergyModel * | energy_balance_model () const |
const YieldStress * | basal_yield_stress_model () const |
const bed::BedDef * | bed_deformation_model () const |
void | set_python_ocean_model (std::shared_ptr< ocean::PyOceanModel > model) |
const Geometry & | geometry () const |
const GeometryEvolution & | geometry_evolution () const |
double | dt () const |
Protected Member Functions | |
virtual void | post_step_hook () |
Virtual. Does nothing in IceModel . Derived classes can do more computation in each time step. More... | |
void | computeGeometryErrors (double &gvolexact, double &gareaexact, double &gdomeHexact, double &volerr, double &areaerr, double &gmaxHerr, double &gavHerr, double &gmaxetaerr, double ¢erHerr) |
virtual void | print_summary (bool tempAndAge) |
void | initTestABCDH () |
void | reset_thickness_test_A () |
Tests A and E have a thickness B.C. (ice_thickness == 0 outside a circle of radius 750km). More... | |
void | initTestL () |
virtual void | energy_step () |
Manage the solution of the energy equation, and related parallel communication. More... | |
void | initTestFG () |
void | getCompSourcesTestFG () |
void | computeTemperatureErrors (double &gmaxTerr, double &gavTerr) |
void | computeBasalTemperatureErrors (double &gmaxTerr, double &gavTerr, double ¢erTerr) |
void | compute_strain_heating_errors (double &gmax_strain_heating_err, double &gav_strain_heating_err) |
void | computeSurfaceVelocityErrors (double &gmaxUerr, double &gavUerr, double &gmaxWerr, double &gavWerr) |
void | initTestsKO () |
void | computeIceBedrockTemperatureErrors (double &gmaxTerr, double &gavTerr, double &gmaxTberr, double &gavTberr) |
void | computeBasalMeltRateErrors (double &gmaxbmelterr, double &gminbmelterr) |
void | test_V_init () |
Initialize test V. More... | |
Protected Member Functions inherited from pism::IceModel | |
virtual void | allocate_submodels () |
Allocate PISM's sub-models implementing some physical processes. More... | |
virtual void | allocate_stressbalance () |
Decide which stress balance model to use. More... | |
virtual void | allocate_age_model () |
virtual void | allocate_isochrones () |
virtual void | allocate_subglacial_hydrology () |
Decide which subglacial hydrology model to use. More... | |
virtual void | allocate_basal_yield_stress () |
Decide which basal yield stress model to use. More... | |
virtual void | allocate_geometry_evolution () |
virtual void | allocate_iceberg_remover () |
virtual stressbalance::Inputs | stress_balance_inputs () |
virtual energy::Inputs | energy_model_inputs () |
virtual YieldStressInputs | yield_stress_inputs () |
virtual void | time_setup () |
Initialize time from an input file or command-line options. More... | |
virtual void | model_state_setup () |
Sets the starting values of model state variables. More... | |
virtual void | misc_setup () |
Miscellaneous initialization tasks plus tasks that need the fields that can come from regridding. More... | |
virtual void | init_diagnostics () |
virtual void | init_calving () |
Initialize calving mechanisms. More... | |
virtual void | init_frontal_melt () |
virtual void | init_front_retreat () |
virtual void | prune_diagnostics () |
virtual void | update_diagnostics (double dt) |
virtual void | reset_diagnostics () |
virtual void | step (bool do_mass_continuity, bool do_skip) |
The contents of the main PISM time-step. More... | |
virtual void | pre_step_hook () |
Virtual. Does nothing in IceModel . Derived classes can do more computation in each time step. More... | |
void | reset_counters () |
virtual void | process_options () |
virtual std::set< std::string > | output_variables (const std::string &keyword) |
Assembles a list of diagnostics corresponding to an output file size. More... | |
virtual void | compute_lat_lon () |
virtual void | restart_2d (const File &input_file, unsigned int record) |
Initialize 2D model state fields managed by IceModel from a file (for re-starting). More... | |
virtual void | save_variables (const File &file, OutputKind kind, const std::set< std::string > &variables, double time, io::Type default_diagnostics_type=io::PISM_FLOAT) const |
virtual void | define_model_state (const File &file) const |
virtual void | write_model_state (const File &file) const |
virtual void | write_metadata (const File &file, MappingTreatment mapping_flag, HistoryTreatment history_flag) const |
Write time-independent metadata to a file. More... | |
virtual void | define_diagnostics (const File &file, const std::set< std::string > &variables, io::Type default_type) const |
virtual void | write_diagnostics (const File &file, const std::set< std::string > &variables) const |
Writes variables listed in vars to filename, using nctype to write fields stored in dedicated Arrays. More... | |
std::string | save_state_on_error (const std::string &suffix, const std::set< std::string > &additional_variables) |
virtual TimesteppingInfo | max_timestep (unsigned int counter) |
Use various stability criteria to determine the time step for an evolution run. More... | |
virtual MaxTimestep | max_timestep_diffusivity () |
Compute the maximum time step allowed by the diffusive SIA. More... | |
virtual unsigned int | skip_counter (double input_dt, double input_dt_diffusivity) |
Compute the skip counter using "long" (usually determined using the CFL stability criterion) and "short" (typically determined using the diffusivity-based stability criterion) time step lengths. More... | |
virtual void | bedrock_thermal_model_step () |
virtual void | hydrology_step () |
virtual void | combine_basal_melt_rate (const Geometry &geometry, const array::Scalar &shelf_base_mass_flux, const array::Scalar &grounded_basal_melt_rate, array::Scalar &result) |
Combine basal melt rate in grounded and floating areas. More... | |
void | enforce_consistency_of_geometry (ConsistencyFlag flag) |
Update the surface elevation and the flow-type mask when the geometry has changed. More... | |
void | identify_open_ocean (const array::CellType &cell_type, array::Scalar &result) |
virtual void | front_retreat_step () |
void | compute_geometry_change (const array::Scalar &thickness, const array::Scalar &Href, const array::Scalar &thickness_old, const array::Scalar &Href_old, bool add_values, array::Scalar &output) |
virtual void | regrid () |
Manage regridding based on user options. More... | |
virtual void | update_fracture_density () |
virtual double | compute_temperate_base_fraction (double ice_area) |
virtual double | compute_original_ice_fraction (double ice_volume) |
virtual void | print_summary_line (bool printPrototype, bool tempAndAge, double delta_t, double volume, double area, double meltfrac, double max_diffusivity) |
Print a line to stdout which summarizes the state of the modeled ice sheet at the end of the time step. More... | |
virtual int | process_signals () |
Catch signals -USR1, -USR2 and -TERM. More... | |
virtual void | prepend_history (const std::string &string) |
Get time and user/host name and add it to the given string. More... | |
VariableMetadata | run_stats () const |
void | init_snapshots () |
Initializes the snapshot-saving mechanism. More... | |
void | write_snapshot () |
Writes a snapshot of the model state (if necessary) More... | |
MaxTimestep | save_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -save_times . More... | |
void | init_timeseries () |
Initializes the code writing scalar time-series. More... | |
void | flush_timeseries () |
Flush scalar time-series. More... | |
MaxTimestep | ts_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -ts_times . More... | |
void | init_extras () |
Initialize the code saving spatially-variable diagnostic quantities. More... | |
void | write_extras () |
Write spatially-variable diagnostic quantities. More... | |
MaxTimestep | extras_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -extra_times . More... | |
void | init_checkpoints () |
Initialize checkpointing (snapshot-on-wallclock-time) mechanism. More... | |
bool | write_checkpoint () |
Write a checkpoint (i.e. an intermediate result of a run). More... | |
virtual void | update_viewers () |
Update the runtime graphical viewers. More... | |
virtual void | view_field (const array::Array *field) |
Protected Attributes | |
int | m_testname |
array::Scalar | m_HexactL |
array::Array3D | m_strain_heating3_comp |
Protected Attributes inherited from pism::IceModel | |
const std::shared_ptr< Grid > | m_grid |
Computational grid. More... | |
const Config::Ptr | m_config |
Configuration flags and parameters. More... | |
const std::shared_ptr< Context > | m_ctx |
Execution context. More... | |
const units::System::Ptr | m_sys |
Unit system. More... | |
const Logger::Ptr | m_log |
Logger. More... | |
const Time::Ptr | m_time |
Time manager. More... | |
const int | m_wide_stencil |
VariableMetadata | m_output_global_attributes |
stores global attributes saved in a PISM output file More... | |
std::map< std::string, const Component * > | m_submodels |
the list of sub-models, for writing model states and obtaining diagnostics More... | |
std::unique_ptr< hydrology::Hydrology > | m_subglacial_hydrology |
std::shared_ptr< YieldStress > | m_basal_yield_stress_model |
std::shared_ptr< array::Forcing > | m_surface_input_for_hydrology |
std::shared_ptr< energy::BedThermalUnit > | m_btu |
std::shared_ptr< energy::EnergyModel > | m_energy_model |
std::shared_ptr< AgeModel > | m_age_model |
std::shared_ptr< Isochrones > | m_isochrones |
std::shared_ptr< calving::IcebergRemover > | m_iceberg_remover |
std::shared_ptr< calving::FloatKill > | m_float_kill_calving |
std::shared_ptr< calving::CalvingAtThickness > | m_thickness_threshold_calving |
std::shared_ptr< calving::EigenCalving > | m_eigen_calving |
std::shared_ptr< calving::HayhurstCalving > | m_hayhurst_calving |
std::shared_ptr< calving::vonMisesCalving > | m_vonmises_calving |
std::shared_ptr< PrescribedRetreat > | m_prescribed_retreat |
std::unique_ptr< ScalarForcing > | m_calving_rate_factor |
std::shared_ptr< FrontRetreat > | m_front_retreat |
std::shared_ptr< surface::SurfaceModel > | m_surface |
std::shared_ptr< ocean::OceanModel > | m_ocean |
std::shared_ptr< frontalmelt::FrontalMelt > | m_frontal_melt |
std::shared_ptr< ocean::sea_level::SeaLevel > | m_sea_level |
std::shared_ptr< bed::BedDef > | m_beddef |
Geometry | m_geometry |
std::unique_ptr< GeometryEvolution > | m_geometry_evolution |
bool | m_new_bed_elevation |
array::Scalar2 | m_basal_yield_stress |
ghosted More... | |
array::Scalar | m_basal_melt_rate |
rate of production of basal meltwater (ice-equivalent); no ghosts More... | |
array::Scalar | m_bedtoptemp |
temperature at the top surface of the bedrock thermal layer More... | |
std::shared_ptr< FractureDensity > | m_fracture |
array::Scalar2 | m_velocity_bc_mask |
mask to determine Dirichlet boundary locations for the sliding velocity More... | |
array::Vector2 | m_velocity_bc_values |
Dirichlet boundary velocities. More... | |
array::Scalar1 | m_ice_thickness_bc_mask |
Mask prescribing locations where ice thickness is held constant. More... | |
double | m_dt |
mass continuity time step, s More... | |
double | t_TempAge |
time of last update for enthalpy/temperature More... | |
double | dt_TempAge |
enthalpy/temperature and age time-steps More... | |
unsigned int | m_skip_countdown |
std::string | m_adaptive_timestep_reason |
std::string | m_stdout_flags |
unsigned int | m_step_counter |
std::vector< std::shared_ptr< array::Scalar2 > > | m_work2d |
std::shared_ptr< petsc::Vec > | m_work2d_proc0 |
std::shared_ptr< stressbalance::StressBalance > | m_stress_balance |
ThicknessChanges | m_thickness_change |
std::set< array::Array * > | m_model_state |
std::map< std::string, Diagnostic::Ptr > | m_diagnostics |
Requested spatially-variable diagnostics. More... | |
std::map< std::string, TSDiagnostic::Ptr > | m_ts_diagnostics |
Requested scalar diagnostics. More... | |
std::set< std::string > | m_output_vars |
std::string | m_snapshots_filename |
bool | m_save_snapshots |
bool | m_snapshots_file_is_ready |
bool | m_split_snapshots |
std::vector< double > | m_snapshot_times |
std::set< std::string > | m_snapshot_vars |
unsigned int | m_current_snapshot |
std::string | m_ts_filename |
file to write scalar time-series to More... | |
std::shared_ptr< std::vector< double > > | m_ts_times |
requested times for scalar time-series More... | |
std::set< std::string > | m_ts_vars |
bool | m_save_extra |
bool | m_extra_file_is_ready |
bool | m_split_extra |
std::string | m_extra_filename |
std::vector< double > | m_extra_times |
unsigned int | m_next_extra |
double | m_last_extra |
std::set< std::string > | m_extra_vars |
VariableMetadata | m_extra_bounds |
std::unique_ptr< File > | m_extra_file |
std::string | m_checkpoint_filename |
double | m_last_checkpoint_time |
std::set< std::string > | m_checkpoint_vars |
double | m_timestep_hit_multiples_last_time |
std::map< std::string, std::vector< std::shared_ptr< petsc::Viewer > > > | m_viewers |
Private Attributes | |
double | m_f |
bool | m_bedrock_is_ice_forK |
Static Private Attributes | |
static const double | m_ST = 1.67e-5 |
static const double | m_Tmin = 223.15 |
static const double | m_LforFG = 750000 |
static const double | m_ApforG = 200 |
Additional Inherited Members | |
Protected Types inherited from pism::IceModel | |
enum | OutputKind { INCLUDE_MODEL_STATE = 0 , JUST_DIAGNOSTICS } |
enum | HistoryTreatment { OVERWRITE_HISTORY = 0 , PREPEND_HISTORY } |
enum | MappingTreatment { WRITE_MAPPING = 0 , SKIP_MAPPING } |
enum | ConsistencyFlag { REMOVE_ICEBERGS , DONT_REMOVE_ICEBERGS } |
Static Protected Attributes inherited from pism::IceModel | |
static const int | m_n_work2d = 4 |
Definition at line 26 of file iceCompModel.hh.