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

SSAStrengthExtension Class Reference

Gives an extension coefficient to maintain ellipticity of SSA where ice is thin. More...

#include <SSA.hh>

List of all members.

Public Member Functions

 SSAStrengthExtension (const NCConfigVariable &c)
virtual ~SSAStrengthExtension ()
virtual PetscErrorCode set_notional_strength (PetscReal my_nuH)
 Set strength = (viscosity times thickness).
virtual PetscErrorCode set_min_thickness (PetscReal my_min_thickness)
 Set minimum thickness to trigger use of extension.
virtual PetscReal get_notional_strength () const
 Returns strength = (viscosity times thickness).
virtual PetscReal get_min_thickness () const
 Returns minimum thickness to trigger use of extension.

Private Attributes

const NCConfigVariable & config
PetscReal min_thickness
PetscReal constant_nu

Detailed Description

Gives an extension coefficient to maintain ellipticity of SSA where ice is thin.

The SSA is basically a nonlinear elliptic, but vector-valued, equation which determines the ice velocity field from the driving stress, the basal shear stress, the ice hardness, and some boundary conditions. The problem loses ellipticity (coercivity) if the thickness actually goes to zero. This class provides an extension coefficient to maintain ellipticity.

More specifically, the SSA equations are

\[ \def\ddx#1{\ensuremath{\frac{\partial #1}{\partial x}}} \def\ddy#1{\ensuremath{\frac{\partial #1}{\partial y}}} - 2 \ddx{}\left[\nu H \left(2 \ddx{u} + \ddy{v}\right)\right] - \ddy{}\left[\nu H \left(\ddy{u} + \ddx{v}\right)\right] + \tau_{(b)x} = - \rho g H \ddx{h}, \]

and another similar equation for the $y$-component. Schoof SchoofStream shows that these PDEs are the variational equations for a coercive functional, thus (morally) elliptic.

The quantity $\nu H$ is the nonlinear coefficient, and conceptually it is a membrane strength. This class extends $\nu H$ to have a minimum value at all points. It is a class, and not just a configuration constant, because setting both the thickness $H$ and the value $\nu H$ are allowed, and setting each of these does not affect the value of the other.

Definition at line 51 of file SSA.hh.


Constructor & Destructor Documentation

SSAStrengthExtension ( const NCConfigVariable &  c) [inline]

Definition at line 53 of file SSA.hh.

References config, constant_nu, and min_thickness.

virtual ~SSAStrengthExtension ( ) [inline, virtual]

Definition at line 58 of file SSA.hh.


Member Function Documentation

virtual PetscReal get_min_thickness ( ) const [inline, virtual]

Returns minimum thickness to trigger use of extension.

Definition at line 84 of file SSA.hh.

References min_thickness.

Referenced by SSAFEM::PointwiseNuHAndBeta().

virtual PetscReal get_notional_strength ( ) const [inline, virtual]

Returns strength = (viscosity times thickness).

Definition at line 79 of file SSA.hh.

References constant_nu, and min_thickness.

Referenced by SSAFD::compute_nuH_staggered(), and SSAFEM::PointwiseNuHAndBeta().

virtual PetscErrorCode set_min_thickness ( PetscReal  my_min_thickness) [inline, virtual]

Set minimum thickness to trigger use of extension.

Preserves strength (nuH) by also updating using current nu.

Definition at line 70 of file SSA.hh.

References constant_nu, and min_thickness.

Referenced by IceMISMIPModel::allocate_stressbalance(), and main().

virtual PetscErrorCode set_notional_strength ( PetscReal  my_nuH) [inline, virtual]

Set strength = (viscosity times thickness).

Determines nu by input strength and current min_thickness.

Definition at line 62 of file SSA.hh.

References constant_nu, and min_thickness.

Referenced by IceMISMIPModel::allocate_stressbalance(), IcePSTexModel::allocate_stressbalance(), and main().


Member Data Documentation

const NCConfigVariable& config [private]

Definition at line 87 of file SSA.hh.

Referenced by SSAStrengthExtension().


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