|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
#include <flowlaws.hh>

Public Member Functions | |
| IceFlowLaw (MPI_Comm c, const char pre[], const NCConfigVariable &config) | |
| virtual | ~IceFlowLaw () |
| virtual PetscErrorCode | setFromOptions () |
| virtual PetscReal | effectiveViscosity (PetscReal hardness, PetscReal u_x, PetscReal u_y, PetscReal v_x, PetscReal v_y) const |
| Returns viscosity and not the nu * H product. | |
| virtual void | effectiveViscosity_with_derivative (PetscReal hardness, const PetscReal Du[], PetscReal *nu, PetscReal *dnu) const |
| Computes effective viscosity and its derivative with respect to the second invariant. | |
| virtual PetscReal | averagedHardness_from_enth (PetscReal thickness, PetscInt kbelowH, const PetscReal *zlevels, const PetscReal *enthalpy) const |
| virtual PetscReal | exponent () const |
| virtual PetscReal | hardnessParameter_from_enth (PetscReal E, PetscReal p) const |
| virtual PetscReal | softnessParameter_from_enth (PetscReal E, PetscReal p) const =0 |
| virtual PetscReal | flow_from_enth (PetscReal stress, PetscReal E, PetscReal pressure, PetscReal grainsize) const |
| The flow law itself. | |
Public Attributes | |
| PetscReal | rho |
| ice density | |
| PetscReal | beta_CC_grad |
| Clausius-Clapeyron gradient. | |
| PetscReal | k |
| thermal conductivity | |
| PetscReal | c_p |
| specific heat capacity | |
| PetscReal | latentHeat |
| latent heat capacity | |
| PetscReal | melting_point_temp |
| for water, 273.15 K | |
Protected Member Functions | |
| PetscReal | softnessParameter_paterson_budd (PetscReal T_pa) const |
| Return the softness parameter A(T) for a given temperature T. | |
Protected Attributes | |
| PetscReal | schoofLen |
| PetscReal | schoofVel |
| PetscReal | schoofReg |
| PetscReal | A_cold |
| PetscReal | A_warm |
| PetscReal | Q_cold |
| PetscReal | Q_warm |
| PetscReal | crit_temp |
| PetscReal | standard_gravity |
| PetscReal | ideal_gas_constant |
| PetscReal | n |
| MPI_Comm | comm |
| char | prefix [256] |
| EnthalpyConverter * | EC |
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
Definition at line 56 of file flowlaws.hh.
| IceFlowLaw | ( | MPI_Comm | c, |
| const char | pre[], | ||
| const NCConfigVariable & | config | ||
| ) |
Definition at line 48 of file flowlaws.cc.
References A_cold, A_warm, beta_CC_grad, c_p, crit_temp, EC, ideal_gas_constant, k, latentHeat, melting_point_temp, n, prefix, Q_cold, Q_warm, rho, schoofLen, schoofReg, schoofVel, secpera, and standard_gravity.
| ~IceFlowLaw | ( | ) | [virtual] |
Definition at line 79 of file flowlaws.cc.
References EC.
| PetscReal averagedHardness_from_enth | ( | PetscReal | thickness, |
| PetscInt | kbelowH, | ||
| const PetscReal * | zlevels, | ||
| const PetscReal * | enthalpy | ||
| ) | const [virtual] |
Computes vertical average of B(E,pressure) ice hardness, namely
. See comment for hardnessParameter(). /*! Note E[0],...,E[kbelowH] must be valid.
Reimplemented in CustomGlenIce.
Definition at line 170 of file flowlaws.cc.
References EC, EnthalpyConverter::getPressureFromDepth(), and hardnessParameter_from_enth().
Referenced by SSAFD::compute_hardav_staggered(), and SSAFEM::setup().
| PetscReal effectiveViscosity | ( | PetscReal | hardness, |
| PetscReal | u_x, | ||
| PetscReal | u_y, | ||
| PetscReal | v_x, | ||
| PetscReal | v_y | ||
| ) | const [virtual] |
Returns viscosity and not the nu * H product.
Definition at line 127 of file flowlaws.cc.
References n, schoofReg, and secondInvariant().
Referenced by SSAFD::compute_nuH_staggered().
| void effectiveViscosity_with_derivative | ( | PetscReal | hardness, |
| const PetscReal | Du[], | ||
| PetscReal * | nu, | ||
| PetscReal * | dnu | ||
| ) | const [virtual] |
Computes effective viscosity and its derivative with respect to the second invariant.
Definition at line 136 of file flowlaws.cc.
References n, schoofReg, and secondInvariantDu().
Referenced by SSAFEM::PointwiseNuHAndBeta().
| virtual PetscReal exponent | ( | ) | const [inline, virtual] |
Definition at line 73 of file flowlaws.hh.
References n.
Referenced by SSAFD::allocate_fd(), SSAFEM::allocate_fem(), SSA::compute_driving_stress(), SSBM_Trivial::compute_sigma(), SIAFD::compute_sigma(), IceCompModel::computeGeometryErrors(), IceModel_hardav::IceModel_hardav(), IceCompModel::reportErrors(), SIAFD::surface_gradient_eta(), and SIA_Sliding::surface_gradient_eta().
| PetscReal flow_from_enth | ( | PetscReal | stress, |
| PetscReal | E, | ||
| PetscReal | pressure, | ||
| PetscReal | grainsize | ||
| ) | const [virtual] |
The flow law itself.
Reimplemented in ThermoGlenIce, and CustomGlenIce.
Definition at line 158 of file flowlaws.cc.
References n, and softnessParameter_from_enth().
Referenced by SIAFD::compute_diffusive_flux(), IceFlowLawIsPatersonBuddCold(), IceFlowLawUsesGrainSize(), and main().
Reimplemented in CustomGlenIce.
Definition at line 163 of file flowlaws.cc.
References n, and softnessParameter_from_enth().
Referenced by averagedHardness_from_enth(), SSBM_Trivial::compute_sigma(), SIAFD::compute_sigma(), and IceCompModel::computeGeometryErrors().
| PetscErrorCode setFromOptions | ( | ) | [virtual] |
Implemented in GPBLDIce, ThermoGlenIce, and CustomGlenIce.
Referenced by flow_from_enth(), and hardnessParameter_from_enth().
Return the softness parameter A(T) for a given temperature T.
This is not a natural part of all IceFlowLaw instances.
Definition at line 150 of file flowlaws.cc.
References A_cold, A_warm, crit_temp, ideal_gas_constant, Q_cold, and Q_warm.
Referenced by ThermoGlenIce::softnessParameter_from_temp().
Definition at line 91 of file flowlaws.hh.
Referenced by ThermoGlenArrIce::A(), IceFlowLaw(), setFromOptions(), and softnessParameter_paterson_budd().
Definition at line 91 of file flowlaws.hh.
Referenced by ThermoGlenArrIceWarm::A(), IceFlowLaw(), setFromOptions(), and softnessParameter_paterson_budd().
Clausius-Clapeyron gradient.
Definition at line 82 of file flowlaws.hh.
Referenced by SIA_Sliding::basalVelocitySIA(), IceFlowLaw(), IceModel::putTempAtDepth(), and IceModel::temperatureStep().
specific heat capacity
Definition at line 82 of file flowlaws.hh.
Referenced by IceCompModel::allocate_bedrock_thermal_unit(), IceEISModel::allocate_flowlaw(), IceCompModel::computeSigmaErrors(), computeSigmaErrors(), IceCompModel::fillSolnTestFG(), IceCompModel::getCompSourcesTestFG(), IceModel::getEnthalpyCTSColumn(), IceFlowLaw(), and IceModel::temperatureStep().
MPI_Comm comm [protected] |
Definition at line 99 of file flowlaws.hh.
Referenced by GPBLDIce::setFromOptions(), and setFromOptions().
Definition at line 91 of file flowlaws.hh.
Referenced by IceFlowLaw(), setFromOptions(), and softnessParameter_paterson_budd().
EnthalpyConverter* EC [protected] |
Definition at line 101 of file flowlaws.hh.
Referenced by averagedHardness_from_enth(), IceFlowLaw(), and ~IceFlowLaw().
PetscReal ideal_gas_constant [protected] |
Definition at line 95 of file flowlaws.hh.
Referenced by IceFlowLaw(), ThermoGlenArrIce::softnessParameter_from_temp(), softnessParameter_paterson_budd(), and ThermoGlenArrIce::tempFromSoftness().
thermal conductivity
Definition at line 82 of file flowlaws.hh.
Referenced by IceCompModel::allocate_bedrock_thermal_unit(), IceEISModel::allocate_flowlaw(), IceModel::enthalpyAndDrainageStep(), IceModel::getEnthalpyCTSColumn(), IceFlowLaw(), IceModel::putTempAtDepth(), and IceModel::temperatureStep().
latent heat capacity
Definition at line 82 of file flowlaws.hh.
Referenced by IceModel::excessToFromBasalMeltLayer(), and IceFlowLaw().
for water, 273.15 K
Definition at line 82 of file flowlaws.hh.
Referenced by IceFlowLaw(), IceModel::putTempAtDepth(), IceMISMIPModel::set_vars_from_options(), and IceModel::temperatureStep().
Definition at line 95 of file flowlaws.hh.
Referenced by effectiveViscosity(), effectiveViscosity_with_derivative(), exponent(), CustomGlenIce::flow_from_enth(), flow_from_enth(), ThermoGlenArrIce::flow_from_temp(), CustomGlenIce::flow_from_temp(), hardnessParameter_from_enth(), ThermoGlenIce::hardnessParameter_from_temp(), IceFlowLaw(), and ThermoGlenIce::ThermoGlenIce().
char prefix[256] [protected] |
Definition at line 100 of file flowlaws.hh.
Referenced by IceFlowLaw(), GPBLDIce::setFromOptions(), and setFromOptions().
Definition at line 91 of file flowlaws.hh.
Referenced by IceFlowLaw(), ThermoGlenArrIce::Q(), setFromOptions(), and softnessParameter_paterson_budd().
Definition at line 91 of file flowlaws.hh.
Referenced by IceFlowLaw(), ThermoGlenArrIceWarm::Q(), setFromOptions(), and softnessParameter_paterson_budd().
ice density
Definition at line 82 of file flowlaws.hh.
Referenced by IceCompModel::allocate_bed_deformation(), IceCompModel::allocate_bedrock_thermal_unit(), IceEISModel::allocate_flowlaw(), SSAFD::assemble_rhs(), SIA_Sliding::basalVelocitySIA(), SIAFD::compute_diffusive_flux(), SSA::compute_driving_stress(), SSAFEM::compute_local_function(), SSBM_Trivial::compute_sigma(), IceCompModel::computeGeometryErrors(), IceCompModel::computeSigmaErrors(), computeSigmaErrors(), IceModel::enthalpyAndDrainageStep(), IceModel::excessToFromBasalMeltLayer(), IceCompModel::fillSolnTestFG(), Floating(), IceCompModel::getCompSourcesTestFG(), IceModel::getEnthalpyCTSColumn(), IceMISMIPModel::getMISMIPStats(), IceFlowLaw(), IceModel::temperatureStep(), and SIA_Sliding::update().
Definition at line 91 of file flowlaws.hh.
Referenced by IceFlowLaw(), and setFromOptions().
Definition at line 91 of file flowlaws.hh.
Referenced by effectiveViscosity(), effectiveViscosity_with_derivative(), IceFlowLaw(), and setFromOptions().
Definition at line 91 of file flowlaws.hh.
Referenced by IceFlowLaw(), and setFromOptions().
PetscReal standard_gravity [protected] |
Definition at line 95 of file flowlaws.hh.
Referenced by IceFlowLaw().
1.7.3