PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pism::rheology::FlowLaw Class Referenceabstract

#include <FlowLaw.hh>

+ Inheritance diagram for pism::rheology::FlowLaw:

Public Member Functions

 FlowLaw (const std::string &prefix, const Config &config, EnthalpyConverter::Ptr EC)
 
virtual ~FlowLaw ()=default
 
void effective_viscosity (double hardness, double gamma, double *nu, double *dnu) const
 Computes the regularized effective viscosity and its derivative with respect to the second invariant \( \gamma \). More...
 
void effective_viscosity (double hardness, double gamma, double eps, double *nu, double *dnu) const
 
std::string name () const
 
double exponent () const
 
EnthalpyConverter::Ptr EC () const
 
double hardness (double E, double p) const
 
void hardness_n (const double *enthalpy, const double *pressure, unsigned int n, double *result) const
 
double softness (double E, double p) const
 
double flow (double stress, double enthalpy, double pressure, double grain_size) const
 The flow law itself. More...
 
void flow_n (const double *stress, const double *E, const double *pressure, const double *grainsize, unsigned int n, double *result) const
 

Protected Member Functions

virtual double flow_impl (double stress, double E, double pressure, double grainsize) const
 
virtual void flow_n_impl (const double *stress, const double *E, const double *pressure, const double *grainsize, unsigned int n, double *result) const
 
virtual double hardness_impl (double E, double p) const
 
virtual void hardness_n_impl (const double *enthalpy, const double *pressure, unsigned int n, double *result) const
 
virtual double softness_impl (double E, double p) const =0
 
double softness_paterson_budd (double T_pa) const
 Return the softness parameter A(T) for a given temperature T. More...
 

Protected Attributes

std::string m_name
 
double m_rho
 ice density More...
 
double m_beta_CC_grad
 Clausius-Clapeyron gradient. More...
 
double m_melting_point_temp
 melting point temperature (for water, 273.15 K) More...
 
EnthalpyConverter::Ptr m_EC
 
double m_schoofReg
 regularization parameter for \( \gamma \) More...
 
double m_viscosity_power
 \( (1 - n) / (2n) \); used to compute viscosity More...
 
double m_hardness_power
 \( - 1 / n \); used to compute hardness More...
 
double m_A_cold
 Paterson-Budd softness, cold case. More...
 
double m_A_warm
 Paterson-Budd softness, warm case. More...
 
double m_Q_cold
 Activation energy, cold case. More...
 
double m_Q_warm
 Activation energy, warm case. More...
 
double m_crit_temp
 critical temperature (cold – warm transition) More...
 
double m_standard_gravity
 acceleration due to gravity More...
 
double m_ideal_gas_constant
 ideal gas constant More...
 
double m_n
 power law exponent More...
 

Detailed Description

Abstract class containing the constitutive relation for the flow of ice (of the Paterson-Budd type).

This is the interface which most of PISM uses for rheology.

The current implementation of stress-balance computations in PISM restrict possible choices of rheologies to ones that

Note
FlowLaw derived classes should implement hardness() in terms of softness(). That way in many cases we only need to re-implement softness... to turn one flow law into another.

Definition at line 77 of file FlowLaw.hh.


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