|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
Derived class for doing EISMINT II simplified geometry experiments.
More...
#include <IceEISModel.hh>
Inheritance diagram for pism::IceEISModel:Public Member Functions | |
| IceEISModel (std::shared_ptr< Grid > g, std::shared_ptr< Context > ctx, char experiment) | |
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. | |
| std::shared_ptr< Context > | ctx () const |
| Return the context this model is running in. | |
| void | init () |
| Manage the initialization of the IceModel object. | |
| IceModelTerminationReason | run () |
| IceModelTerminationReason | run_to (double run_end) |
| virtual void | save_results () |
| Save model state in NetCDF format. | |
| 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 |
| 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 | |
| void | initialize_2d () |
| void | bootstrap_2d (const File &input_file) |
| void | allocate_couplers () |
Protected Member Functions inherited from pism::IceModel | |
| virtual void | allocate_submodels () |
| Allocate PISM's sub-models implementing some physical processes. | |
| virtual void | allocate_stressbalance () |
| Decide which stress balance model to use. | |
| virtual void | allocate_age_model () |
| virtual void | allocate_isochrones () |
| virtual void | allocate_bed_deformation () |
| virtual void | allocate_bedrock_thermal_unit () |
| Decide which bedrock thermal unit to use. | |
| virtual void | allocate_energy_model () |
| virtual void | allocate_subglacial_hydrology () |
| Decide which subglacial hydrology model to use. | |
| virtual void | allocate_basal_yield_stress () |
| Decide which basal yield stress model to use. | |
| 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. | |
| virtual void | model_state_setup () |
| Sets the starting values of model state variables. | |
| virtual void | misc_setup () |
| Miscellaneous initialization tasks plus tasks that need the fields that can come from regridding. | |
| virtual void | init_diagnostics () |
| virtual void | init_calving () |
| Initialize calving mechanisms. | |
| 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. | |
| virtual void | pre_step_hook () |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step. | |
| virtual void | post_step_hook () |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step. | |
| 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. | |
| 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). | |
| 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. | |
| 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. | |
| std::string | save_state_on_error (const std::string &suffix, const std::set< std::string > &additional_variables) |
| virtual void | allocate_storage () |
| Allocate all Arrays defined in IceModel. | |
| virtual TimesteppingInfo | max_timestep (unsigned int counter) |
| Use various stability criteria to determine the time step for an evolution run. | |
| virtual MaxTimestep | max_timestep_diffusivity () |
| Compute the maximum time step allowed by the diffusive SIA. | |
| 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. | |
| virtual void | bedrock_thermal_model_step () |
| virtual void | energy_step () |
| Manage the solution of the energy equation, and related parallel communication. | |
| 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. | |
| void | enforce_consistency_of_geometry (ConsistencyFlag flag) |
| Update the surface elevation and the flow-type mask when the geometry has changed. | |
| void | identify_open_ocean (const array::CellType &cell_type, array::Scalar1 &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. | |
| 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 (bool tempAndAge) |
| 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. | |
| virtual int | process_signals () |
| Catch signals -USR1, -USR2 and -TERM. | |
| virtual void | prepend_history (const std::string &string) |
| Get time and user/host name and add it to the given string. | |
| VariableMetadata | run_stats () const |
| void | init_snapshots () |
| Initializes the snapshot-saving mechanism. | |
| void | write_snapshot () |
| Writes a snapshot of the model state (if necessary) | |
| MaxTimestep | save_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -save_times. | |
| void | init_timeseries () |
| Initializes the code writing scalar time-series. | |
| void | flush_timeseries () |
| Flush scalar time-series. | |
| MaxTimestep | ts_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -ts_times. | |
| void | init_extras () |
| Initialize the code saving spatially-variable diagnostic quantities. | |
| void | write_extras () |
| Write spatially-variable diagnostic quantities. | |
| MaxTimestep | extras_max_timestep (double my_t) |
Computes the maximum time-step we can take and still hit all -extra_times. | |
| void | init_checkpoints () |
| Initialize checkpointing (snapshot-on-wallclock-time) mechanism. | |
| bool | write_checkpoint () |
| Write a checkpoint (i.e. an intermediate result of a run). | |
| virtual void | update_viewers () |
| Update the runtime graphical viewers. | |
| virtual void | view_field (const array::Array *field) |
Protected Attributes | |
| char | m_experiment |
Protected Attributes inherited from pism::IceModel | |
| const std::shared_ptr< Grid > | m_grid |
| Computational grid. | |
| Config::Ptr | m_config |
| Configuration flags and parameters. | |
| std::shared_ptr< Context > | m_ctx |
| Execution context. | |
| const units::System::Ptr | m_sys |
| Unit system. | |
| const Logger::Ptr | m_log |
| Logger. | |
| const Time::Ptr | m_time |
| Time manager. | |
| VariableMetadata | m_output_global_attributes |
| stores global attributes saved in a PISM output file | |
| std::map< std::string, const Component * > | m_submodels |
| the list of sub-models, for writing model states and obtaining diagnostics | |
| 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 | |
| array::Scalar | m_basal_melt_rate |
| rate of production of basal meltwater (ice-equivalent); no ghosts | |
| array::Scalar | m_bedtoptemp |
| temperature at the top surface of the bedrock thermal layer | |
| std::shared_ptr< FractureDensity > | m_fracture |
| array::Scalar2 | m_velocity_bc_mask |
| mask to determine Dirichlet boundary locations for the sliding velocity | |
| array::Vector2 | m_velocity_bc_values |
| Dirichlet boundary velocities. | |
| array::Scalar1 | m_ice_thickness_bc_mask |
| Mask prescribing locations where ice thickness is held constant. | |
| double | m_dt |
| mass continuity time step, s | |
| double | t_TempAge |
| time of last update for enthalpy/temperature | |
| double | dt_TempAge |
| enthalpy/temperature and age time-steps | |
| 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< 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. | |
| std::map< std::string, TSDiagnostic::Ptr > | m_ts_diagnostics |
| Requested scalar diagnostics. | |
| std::set< std::string > | m_output_vars |
| std::string | m_snapshots_filename |
| std::shared_ptr< File > | m_snapshot_file |
| 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 | |
| std::shared_ptr< std::vector< double > > | m_ts_times |
| requested times for scalar time-series | |
| std::set< std::string > | m_ts_vars |
| 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 |
| 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 |
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 |
Derived class for doing EISMINT II simplified geometry experiments.
These experiments use the thermomechanically-coupled, non-polythermal shallow ice approximation. See EISMINT00 and Appendix B of BBssasliding.
Definition at line 31 of file IceEISModel.hh.