BISICLES AMR ice sheet model
0.9
|
Basal friction relation which satisfies Tb = min(|Tb'|, a*p) u/|u|. More...
#include <BasalFrictionRelation.H>
Public Types | |
enum | Model { Tsai, Leguy, MAX_MODEL } |
Public Member Functions | |
virtual void | computeDissipation (FArrayBox &a_dissipation, const FArrayBox &a_basalVel, const FArrayBox &a_C, const Real &a_scale, const LevelSigmaCS &a_coords, const DataIterator &a_dit, int a_level, const Box &a_box) const |
void | updateThermodynamics (Vector< LevelData< FArrayBox > * > *a_tillWaterDepth) |
virtual void | computeAlpha (FArrayBox &a_alpha, const FArrayBox &a_basalVel, const FArrayBox &a_C, const Real &a_scale, const LevelSigmaCS &a_coords, const DataIterator &a_dit, int a_level, const Box &a_box) const |
Computes cell-centered effective basal friction coeffcient ![]() ![]() | |
PressureLimitedBasalFrictionRelation (Real a_a, Real a_p, Real a_maxTillWaterDepth, Real a_tillPressureFactor, Model a_model, BasalFrictionRelation *a_bfr) | |
virtual BasalFrictionRelation * | getNewBasalFrictionRelation () const |
creates a new copy of subclass objects. More... | |
virtual Real | power () const |
![]() | |
virtual | ~BasalFrictionRelation () |
Additional Inherited Members | |
![]() | |
static BasalFrictionRelation * | parse (const char *a_prefix, int a_recursion) |
Run-time configuration of BasalFrictionRelation objects. More... | |
Basal friction relation which satisfies Tb = min(|Tb'|, a*p) u/|u|.
Tb' is any BasalFrictionRelation a is a constant (for now) coefficient, N is the local (hydrostatic) pressure For a ~ 1, Tb = Tb' is applied most places, with the Coulomb law Tb = a*p*u/|u| imposed at flotation
Three laws are supported, one due to Tsai 2015
the second due to Schoof 2005, Gagliardini 2007, and Leguy 2014, which is smoother but otherwise similar. We use the form from Leguy 2014
Run-time configuation is carried out in BasalFrictionRelation::parse. If the string A.B.basalFrictionRelation = pressureLimitedLaw
is found, the expected form is
BasalFrictionPressureLimitedLaw.coefficient = <float, optional, defualt 1.0>
( BasalFrictionPressureLimitedLaw.power = <float, optional, defualt 1.0>
( BasalFrictionPressureLimitedLaw.model = Tsai|Leguy (optional , default Tsai)
BasalFrictionPressureLimitedLaw.basalFrictionRelation = <valid BasalFrictionRelation>
|
inline |
|
virtual |
Computes cell-centered effective basal friction coeffcient such that
.
a_alpha | effective basal friction coefficient based on the local velocity field. |
a_basalVel | Cell-centered basal velocity field. |
a_C | Cell-centered coefficient field |
a_coords | whole level geometry data |
a_dit | index needed to retrieve data from a_coords |
a_box | cell-centered box over which to do this computation |
Implements BasalFrictionRelation.
References LevelSigmaCS::getH(), LevelSigmaCS::getThicknessOverFlotation(), LevelSigmaCS::gravity(), LevelSigmaCS::iceDensity(), and BasalFrictionRelation::power().
Referenced by computeDissipation().
|
virtual |
computes cell-centered based on the cell-centered velocity and a coefficient field beta such that T_b = - (u, C) u_b
a_C | – ![]() |
a_basalVel | – Cell-centered basal velocity field. |
a_box | cell-centered box over which to do this computation |
Reimplemented from BasalFrictionRelation.
References BasalFrictionRelation::computeAlpha(), and computeAlpha().
|
inlinevirtual |
creates a new copy of subclass objects.
Implements BasalFrictionRelation.
|
inlinevirtual |
Implements BasalFrictionRelation.
References BasalFrictionRelation::power().
|
inlinevirtual |
Reimplemented from BasalFrictionRelation.
References BasalFrictionRelation::computeAlpha().