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

◆ enthalpy()

double pism::EnthalpyConverter::enthalpy ( double  T,
double  omega,
double  P 
) const

Compute enthalpy from absolute temperature, liquid water fraction, and pressure.

This is an inverse function to the functions \(T(E,p)\) and \(\omega(E,p)\) [AschwandenBuelerKhroulevBlatter]. It returns:

\[E(T,\omega,p) = \begin{cases} c_i (T - T_0), & T < T_m(p) \quad\text{and}\quad \omega = 0, \\ E_s(p) + \omega L, & T = T_m(p) \quad\text{and}\quad \omega \ge 0. \end{cases} \]

Certain cases are not allowed and throw exceptions:

  • \(T<=0\) (error code 1)
  • \(\omega < 0\) or \(\omega > 1\) (error code 2)
  • \(T>T_m(p)\) (error code 3)
  • \(T<T_m(p)\) and \(\omega > 0\) (error code 4) These inequalities may be violated in the sixth digit or so, however.

Definition at line 237 of file EnthalpyConverter.cc.

References enthalpy_cold(), enthalpy_cts(), L(), melting_temperature(), and validate_T_omega_P().

Referenced by enthalpy_permissive().