PISM, A Parallel Ice Sheet Model  stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900

◆ update_impl() [1/2]

void pism::energy::EnthalpyModel::update_impl ( double  t,
double  dt,
const Inputs inputs 
)
protectedvirtual

Update ice enthalpy field based on conservation of energy.

This method is documented by the page bombproofenth and by [AschwandenBuelerKhroulevBlatter].

This method updates array::Array3D m_work and array::Scalar basal_melt_rate. No communication of ghosts is done for any of these fields.

We use an instance of enthSystemCtx.

Regarding drainage, see [AschwandenBuelerKhroulevBlatter] and references therein.

Implements pism::energy::EnergyModel.

Reimplemented in pism::energy::EnthalpyModel_Regional, and pism::energy::DummyEnergyModel.

Definition at line 107 of file EnthalpyModel.cc.

References pism::energy::Inputs::basal_frictional_heating, pism::energy::Inputs::basal_heat_flux, pism::energy::EnergyModelStats::bulge_counter, pism::energy::Inputs::cell_type, pism::ParallelSection::check(), pism::energy::Inputs::check(), pism::columnSystemCtx::dz(), pism::energy::enthSystemCtx::Enth(), pism::energy::enthSystemCtx::Enth_s(), pism::ParallelSection::failed(), pism::columnSystemCtx::fine_to_coarse(), pism::energy::DrainageCalculator::get_drainage_rate(), pism::energy::Inputs::ice_thickness, pism::energy::enthSystemCtx::init(), pism::k, pism::energy::enthSystemCtx::k_from_T(), pism::columnSystemCtx::ks(), L, pism::energy::enthSystemCtx::lambda(), pism::energy::EnergyModelStats::liquified_ice_volume, pism::energy::EnergyModel::m_basal_melt_rate, pism::Component::m_config, pism::Component::m_grid, pism::energy::EnergyModel::m_ice_enthalpy, pism::energy::EnergyModel::m_stats, pism::energy::EnergyModel::m_work, pism::energy::marginal(), pism::array::max(), pism::array::min(), pism::energy::EnergyModelStats::reduced_accuracy_counter, pism::energy::enthSystemCtx::set_basal_dirichlet_bc(), pism::energy::enthSystemCtx::set_basal_heat_flux(), pism::array::Array3D::set_column(), pism::energy::enthSystemCtx::set_surface_dirichlet_bc(), pism::energy::Inputs::shelf_base_temp, pism::energy::enthSystemCtx::solve(), pism::energy::Inputs::surface_liquid_fraction, pism::energy::Inputs::surface_temp, pism::energy::Inputs::till_water_thickness, pism::energy::Inputs::u3, pism::energy::Inputs::v3, pism::energy::Inputs::volumetric_heating_rate, pism::energy::Inputs::w3, and pism::columnSystemCtx::z().