22#include "pism/rheology/PatersonBuddCold.hh"
23#include "pism/util/Config.hh"
30 std::shared_ptr<EnthalpyConverter> ec)
32 m_name =
"Paterson-Budd (cold case)";
46 double ,
double)
const {
53 std::shared_ptr<EnthalpyConverter> EC) {
56 } v[] = { { 1e3, 223, 1e6, 1e-3 },
57 { 450000, 475000, 500000, 525000 },
58 { 5e4, 268, 5e6, 3e-3 },
59 { 1e5, 273, 8e6, 5e-3 } };
61 double n = config.
get_number(
"stress_balance.sia.Glen_exponent");
64 for (
int i=0; i<4; i++) {
65 const double left = flow_law.
flow(v[i].s, v[i].E, v[i].p, v[i].gs),
66 right = cpb.
flow(v[i].s, v[i].E, v[i].p, v[i].gs);
67 if (fabs((left - right)/left)>1.0e-15) {
double get_number(const std::string &name, UseFlag flag=REMEMBER_THIS_USE) const
A class for storing and accessing PISM configuration flags and parameters.
double m_A_cold
Paterson-Budd softness, cold case.
double m_Q_cold
Activation energy, cold case.
double flow(double stress, double enthalpy, double pressure, double grain_size) const
The flow law itself.
double m_ideal_gas_constant
ideal gas constant
double m_n
power law exponent
double softness_from_temp(double T_pa) const
PatersonBuddCold(double exponent, const Config &config, std::shared_ptr< EnthalpyConverter > EC)
double tempFromSoftness(double A) const
Return the temperature T corresponding to a given value A=A(T).
double flow_from_temp(double stress, double temp, double, double) const
The flow law (temperature-dependent version).
Cold case of Paterson-Budd.
Derived class of FlowLaw for Paterson-Budd (1982)-Glen ice.
bool FlowLawIsPatersonBuddCold(const FlowLaw &flow_law, const Config &config, std::shared_ptr< EnthalpyConverter > EC)