Processing math: 100%
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages

◆ update_Wtill()

void pism::hydrology::Routing::update_Wtill ( double  dt,
const array::Scalar Wtill,
const array::Scalar surface_input_rate,
const array::Scalar basal_melt_rate,
array::Scalar Wtill_new 
)
protected

The computation of Wtillnew, called by update().

Does a step of the trivial integration

\frac{\partial W_{till}}{\partial t} = \frac{m}{\rho_w} - C

where C=hydrology_tillwat_decay_rate. Enforces bounds 0 \le W_{till} \le W_{till}^{max} where the upper bound is hydrology_tillwat_max. Here m/\rho_w is total_input.

Compare hydrology::NullTransport::update_impl().

The current code is not quite "code duplication" because the code here:

  1. computes Wtill_new instead of updating Wtill in place;
  2. uses time steps determined by the rest of the hydrology::Routing model;
  3. does not check mask because the enforce_bounds() call addresses that.

Otherwise this is the same physical model with the same configurable parameters.

Definition at line 730 of file Routing.cc.

References pism::array::Array2D< T >::add(), pism::clip(), pism::Component::m_config, pism::Component::m_grid, and pism::hydrology::Hydrology::surface_input_rate().

Referenced by pism::hydrology::Distributed::update_impl(), and update_impl().