PISM, A Parallel Ice Sheet Model  stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
Public Member Functions | List of all members
pism::ColdEnthalpyConverter Class Reference

An EnthalpyConverter for use in verification tests. More...

#include <EnthalpyConverter.hh>

+ Inheritance diagram for pism::ColdEnthalpyConverter:

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< EnthalpyConverterPtr
 
- 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...
 

Detailed Description

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.


The documentation for this class was generated from the following files: