PISM, A Parallel Ice Sheet Model stable 0.4.1779
Public Member Functions | Public Attributes

IceBasalResistancePlasticLaw Class Reference

Class containing physical constants and the constitutive relation describing till for SSA. More...

#include <basal_resistance.hh>

Inheritance diagram for IceBasalResistancePlasticLaw:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 IceBasalResistancePlasticLaw (PetscScalar regularizationConstant, bool pseudoPlastic, PetscScalar pseudoExponent, PetscScalar pseudoUThreshold)
virtual PetscErrorCode printInfo (int verbthresh, MPI_Comm com)
virtual PetscScalar drag (PetscScalar tauc, PetscScalar vx, PetscScalar vy)
 Compute the drag coefficient for the basal shear stress.
virtual void dragWithDerivative (PetscReal tauc, PetscScalar vx, PetscScalar vy, PetscScalar *drag, PetscScalar *ddrag) const
virtual ~IceBasalResistancePlasticLaw ()

Public Attributes

PetscReal plastic_regularize
PetscReal pseudo_q
PetscReal pseudo_u_threshold
bool pseudo_plastic

Detailed Description

Class containing physical constants and the constitutive relation describing till for SSA.

This pseudo -plastic type can actually describe anything from linearly viscous till to purely plastic till.

Definition at line 29 of file basal_resistance.hh.


Constructor & Destructor Documentation

IceBasalResistancePlasticLaw ( PetscScalar  regularizationConstant,
bool  pseudoPlastic,
PetscScalar  pseudoExponent,
PetscScalar  pseudoUThreshold 
)

Definition at line 23 of file basal_resistance.cc.

References plastic_regularize, pseudo_plastic, pseudo_q, and pseudo_u_threshold.

virtual ~IceBasalResistancePlasticLaw ( ) [inline, virtual]

Definition at line 39 of file basal_resistance.hh.


Member Function Documentation

PetscScalar drag ( PetscScalar  tauc,
PetscScalar  vx,
PetscScalar  vy 
) [virtual]

Compute the drag coefficient for the basal shear stress.

The basal shear stress term $\tau_b$ in the SSA stress balance for ice is minus the return value here times (vx,vy). Thus this method computes the basal shear stress as

\[ \tau_b = - \frac{\tau_c}{|\mathbf{U}|^{1-q} U_{\mathtt{th}}^q} \mathbf{U} \]

where $\tau_b=(\tau_{(b)x},\tau_{(b)y})$, $U=(u,v)$, $q=$ pseudo_q, and $U_{\mathtt{th}}=$ pseudo_u_threshold. Typical values for the constants are $q=0.25$ and $U_{\mathtt{th}} = 100$ m/a.

The linearly-viscous till case pseudo_q = 1.0 is allowed, in which case $\beta = \tau_c/U_{\mathtt{th}}$. The purely-plastic till case pseudo_q = 0.0 is also allowed; note that there is still a regularization with data member plastic_regularize.

Reimplemented in MISMIPBasalResistanceLaw.

Definition at line 71 of file basal_resistance.cc.

References plastic_regularize, pseudo_plastic, pseudo_q, and pseudo_u_threshold.

Referenced by SSAFD::assemble_matrix(), SSAFEM_Forward::assemble_T_rhs(), SSAFEM_Forward::assemble_TStarB_rhs(), and SSA::compute_basal_frictional_heating().

void dragWithDerivative ( PetscReal  tauc,
PetscScalar  vx,
PetscScalar  vy,
PetscScalar *  drag,
PetscScalar *  ddrag 
) const [virtual]
PetscErrorCode printInfo ( int  verbthresh,
MPI_Comm  com 
) [virtual]

Reimplemented in MISMIPBasalResistanceLaw.

Definition at line 32 of file basal_resistance.cc.

References plastic_regularize, pseudo_plastic, pseudo_q, pseudo_u_threshold, and secpera.

Referenced by main().


Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines