PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
An EnthalpyConverter for use in verification tests. More...
#include <EnthalpyConverter.hh>
Public Member Functions | |
ColdEnthalpyConverter (const Config &config) | |
virtual | ~ColdEnthalpyConverter ()=default |
Public Member Functions inherited from pism::EnthalpyConverter | |
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() . More... | |
double | temperature (double E, double P) const |
Get absolute (not pressure-adjusted) ice temperature (K) from enthalpy and pressure. More... | |
double | melting_temperature (double P) const |
Get melting temperature from pressure p. More... | |
double | pressure_adjusted_temperature (double E, double P) const |
Get pressure-adjusted ice temperature, in Kelvin, from enthalpy and pressure. More... | |
double | water_fraction (double E, double P) const |
Get liquid water fraction from enthalpy and pressure. More... | |
double | enthalpy (double T, double omega, double P) const |
Compute enthalpy from absolute temperature, liquid water fraction, and pressure. More... | |
double | enthalpy_cts (double P) const |
Get enthalpy E_s(p) at cold-temperate transition point from pressure p. More... | |
double | enthalpy_liquid (double P) const |
Compute the maximum allowed value of ice enthalpy (corresponds to \( \omega = 1 \)). More... | |
double | enthalpy_permissive (double T, double omega, double P) const |
Compute enthalpy more permissively than enthalpy(). More... | |
double | c () const |
Specific heat capacity of ice. More... | |
double | L (double T_pm) const |
double | pressure (double depth) const |
Get pressure in ice from depth below surface using the hydrostatic assumption. More... | |
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 . More... | |
Additional Inherited Members | |
Public Types inherited from pism::EnthalpyConverter | |
typedef std::shared_ptr< EnthalpyConverter > | Ptr |
Protected Member Functions inherited from pism::EnthalpyConverter | |
void | validate_E_P (double E, double P) const |
void | validate_T_omega_P (double T, double omega, double P) const |
double | temperature_cold (double E) const |
Convert enthalpy into temperature (cold case). More... | |
double | enthalpy_cold (double T) const |
Convert temperature into enthalpy (cold case). More... | |
Protected Attributes inherited from pism::EnthalpyConverter | |
double | m_T_melting |
melting temperature of pure water at atmospheric pressure More... | |
double | m_L |
latent heat of fusion of water at atmospheric pressure More... | |
double | m_c_i |
specific heat capacity of ice More... | |
double | m_c_w |
specific heat capacity of pure water More... | |
double | m_rho_i |
density of ice More... | |
double | m_g |
acceleration due to gravity More... | |
double | m_p_air |
atmospheric pressure More... | |
double | m_beta |
beta in the Clausius-Clapeyron relation ( \( \diff{T_m}{p} = - \beta \)). More... | |
double | m_T_tolerance |
temperature tolerance used in is_temperate() in cold ice mode More... | |
double | m_T_0 |
reference temperature in the definition of ice enthalpy More... | |
bool | m_do_cold_ice_methods |
if cold ice methods are selected, use is_temperate() check based on temperature, not enthalpy More... | |
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.