PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
|
An EnthalpyConverter for use in verification tests. More...
#include <EnthalpyConverter.hh>
Public Member Functions | |
ColdEnthalpyConverter (const Config &config) | |
virtual | ~ColdEnthalpyConverter ()=default |
![]() | |
EnthalpyConverter (const Config &config) | |
virtual | ~EnthalpyConverter ()=default |
bool | is_temperate (double E, double P) const |
bool | is_temperate_relaxed (double E, double P) const |
A relaxed version of is_temperate() . | |
double | temperature (double E, double P) const |
Get absolute (not pressure-adjusted) ice temperature (K) from enthalpy and pressure. | |
double | melting_temperature (double P) const |
Get melting temperature from pressure p. | |
double | pressure_adjusted_temperature (double E, double P) const |
Get pressure-adjusted ice temperature, in kelvin, from enthalpy and pressure. | |
double | water_fraction (double E, double P) const |
Get liquid water fraction from enthalpy and pressure. | |
double | enthalpy (double T, double omega, double P) const |
Compute enthalpy from absolute temperature, liquid water fraction, and pressure. | |
double | enthalpy_cts (double P) const |
Get enthalpy E_s(p) at cold-temperate transition point from pressure p. | |
double | enthalpy_liquid (double P) const |
Compute the maximum allowed value of ice enthalpy (corresponds to \omega = 1 ). | |
double | enthalpy_permissive (double T, double omega, double P) const |
Compute enthalpy more permissively than enthalpy(). | |
double | c () const |
Specific heat capacity of ice. | |
double | L (double T_pm) const |
double | pressure (double depth) const |
Get pressure in ice from depth below surface using the hydrostatic assumption. | |
void | pressure (const std::vector< double > &depth, unsigned int ks, std::vector< double > &result) const |
Compute pressure in a column of ice. Does not check validity of depth . | |
Additional Inherited Members | |
![]() | |
typedef std::shared_ptr< EnthalpyConverter > | Ptr |
![]() | |
double | temperature_cold (double E) const |
Convert enthalpy into temperature (cold case). | |
double | enthalpy_cold (double T) const |
Convert temperature into enthalpy (cold case). | |
![]() | |
static void | validate_E_P (double E, double P) |
static void | validate_T_omega_P (double T, double omega, double P) |
![]() | |
double | m_T_melting |
melting temperature of pure water at atmospheric pressure | |
double | m_L |
latent heat of fusion of water at atmospheric pressure | |
double | m_c_i |
specific heat capacity of ice | |
double | m_c_w |
specific heat capacity of pure water | |
double | m_rho_i |
density of ice | |
double | m_g |
acceleration due to gravity | |
double | m_p_air |
atmospheric pressure | |
double | m_beta |
beta in the Clausius-Clapeyron relation ( \diff{T_m}{p} = - \beta ). | |
double | m_T_tolerance |
temperature tolerance used in is_temperate() in cold ice mode | |
double | m_T_0 |
reference temperature in the definition of ice enthalpy | |
bool | m_cold_mode |
if cold ice methods are selected, use is_temperate() check based on temperature, not enthalpy | |
An EnthalpyConverter for use in verification tests.
Treats ice at any temperature below 10^6 kelvin as cold (= zero liquid fraction).
The pressure dependence of the pressure-melting temperature is neglected.c;
Note: Any instance of FlowLaw uses an EnthalpyConverter; this is the one used in cold mode verification code.
This is the special enthalpy converter that is used in temperature-based verification tests only.
In these tests ice temperatures in an exact solution may exceed the pressure-melting temperature, but we still want to pretend that this ice is "cold" to ensure that the map from enthalpy to temperature is one-to-one. (Normally enthalpy is mapped to the (temperature, water fraction) pair; here water fraction is zero, so enthalpy <--> (temperature, 0.)
So, I had to pick a threshold (melting) temperature that is above all ice temperatures. 10^6K was chosen.
Definition at line 134 of file EnthalpyConverter.hh.