PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
#include <GeometryEvolution.hh>
Classes | |
struct | Impl |
Public Member Functions | |
GeometryEvolution (std::shared_ptr< const Grid > grid) | |
~GeometryEvolution () | |
void | init (const InputOptions &opts) |
void | reset () |
void | flow_step (const Geometry &ice_geometry, double dt, const array::Vector &advective_velocity, const array::Staggered &diffusive_flux, const array::Scalar &thickness_bc_mask) |
void | source_term_step (const Geometry &geometry, double dt, const array::Scalar &thickness_bc_mask, const array::Scalar &surface_mass_flux, const array::Scalar &basal_melt_rate) |
void | apply_flux_divergence (Geometry &geometry) const |
void | apply_mass_fluxes (Geometry &geometry) const |
const array::Scalar & | top_surface_mass_balance () const |
const array::Scalar & | bottom_surface_mass_balance () const |
const array::Scalar & | thickness_change_due_to_flow () const |
const array::Scalar & | area_specific_volume_change_due_to_flow () const |
const array::Scalar & | conservation_error () const |
const array::Staggered1 & | flux_staggered () const |
const array::Scalar & | flux_divergence () const |
virtual void | set_no_model_mask (const array::Scalar &mask) |
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 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. 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... | |
Protected Member Functions | |
std::map< std::string, Diagnostic::Ptr > | diagnostics_impl () const |
virtual void | init_impl (const InputOptions &opts) |
void | update_in_place (double dt, const array::Scalar &bed_elevation, const array::Scalar &sea_level, const array::Scalar &flux_divergence, array::Scalar &ice_thickness, array::Scalar &area_specific_volume) |
void | residual_redistribution_iteration (const array::Scalar &bed_topography, const array::Scalar &sea_level, array::Scalar1 &ice_surface_elevation, array::Scalar &ice_thickness, array::CellType1 &cell_type, array::Scalar &Href, array::Scalar &H_residual, bool &done) |
Perform one iteration of the residual mass redistribution. More... | |
virtual void | compute_interface_fluxes (const array::CellType1 &cell_type, const array::Scalar &ice_thickness, const array::Vector &velocity, const array::Staggered &diffusive_flux, array::Staggered &output) |
virtual void | compute_flux_divergence (double dt, const array::Staggered1 &flux_staggered, const array::Scalar &thickness_bc_mask, array::Scalar &conservation_error, array::Scalar &flux_fivergence) |
virtual void | ensure_nonnegativity (const array::Scalar &ice_thickness, const array::Scalar &area_specific_volume, array::Scalar &thickness_change, array::Scalar &area_specific_volume_change, array::Scalar &conservation_error) |
virtual void | set_no_model_mask_impl (const array::Scalar &mask) |
virtual void | compute_surface_and_basal_mass_balance (double dt, const array::Scalar &thickness_bc_mask, const array::Scalar &ice_thickness, const array::CellType &cell_type, const array::Scalar &surface_mass_flux, const array::Scalar &basal_melt_rate, array::Scalar &effective_SMB, array::Scalar &effective_BMB) |
Protected Member Functions inherited from pism::Component | |
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 TSDiagnosticList | ts_diagnostics_impl () const |
void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Protected Attributes | |
Impl * | m_impl |
Protected Attributes inherited from pism::Component | |
const std::shared_ptr< const Grid > | m_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... | |
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... | |
NB! Write this in a way that does not use ghosts of input fields (copy to temp. storage and communicate).
The promise:
H_change + Href_change = dt * (SMB_rate + BMB_rate - flux_divergence) + conservation_error
Href == 0 if H > 0
Definition at line 39 of file GeometryEvolution.hh.