PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ step()

void pism::IceModel::step ( bool  do_mass_continuity,
bool  do_skip 
)
protectedvirtual

The contents of the main PISM time-step.

During the time-step we perform the following actions:

  • update the velocity field; in some cases the whole three-dimensional field is updated and in some cases just the vertically-averaged horizontal velocity is updated
  • determine the time step according to a variety of stability criteria
  • update the yield stress for the plastic till model (if appropriate)
  • update the age of the ice (if appropriate)
  • update the enthalpy (or temperature) field according to the conservation of energy model based (especially) on the new velocity field; see energy_step()
  • update the thickness of the ice according to the mass conservation model and calving parameterizations
  • Update surface and ocean models.
  • update the state variables in the subglacial hydrology model (typically water thickness and sometimes pressure)
  • compute the bed deformation, which depends on current thickness, bed elevation, and sea level

Definition at line 423 of file IceModel.cc.

References pism::RuntimeError::add_context(), pism::Profiling::begin(), pism::IceModel::ThicknessChanges::calving, combine_basal_melt_rate(), compute_geometry_change(), pism::array::Array2D< T >::copy_from(), DONT_REMOVE_ICEBERGS, dt_TempAge, pism::Profiling::end(), energy_step(), enforce_consistency_of_geometry(), pism::RuntimeError::formatted(), front_retreat_step(), hydrology_step(), pism::Geometry::ice_area_specific_volume, pism::AgeModelInputs::ice_thickness, pism::Geometry::ice_thickness, m_adaptive_timestep_reason, m_age_model, m_basal_melt_rate, m_basal_yield_stress, m_basal_yield_stress_model, m_beddef, m_config, m_ctx, m_dt, m_energy_model, m_geometry, m_geometry_evolution, m_grid, m_ice_thickness_bc_mask, m_isochrones, m_new_bed_elevation, m_ocean, m_sea_level, m_skip_countdown, m_stdout_flags, m_step_counter, m_stress_balance, m_surface, m_thickness_change, m_time, m_work2d, pism::array::max(), max_timestep(), PISM_ERROR_LOCATION, post_step_hook(), pre_step_hook(), REMOVE_ICEBERGS, save_state_on_error(), pism::Geometry::sea_level_elevation, stress_balance_inputs(), t_TempAge, pism::AgeModelInputs::u3, update_fracture_density(), pism::AgeModelInputs::v3, pism::AgeModelInputs::w3, and yield_stress_inputs().

Referenced by run().