BISICLES AMR ice sheet model  0.9
Public Member Functions | List of all members
BasalFrictionPowerLaw Class Reference

implements BasalFrictionRelation to provide a power law More...

#include <BasalFrictionRelation.H>

Inheritance diagram for BasalFrictionPowerLaw:
Inheritance graph
[legend]
Collaboration diagram for BasalFrictionPowerLaw:
Collaboration graph
[legend]

Public Member Functions

 BasalFrictionPowerLaw (Real a_m, Real a_fastSlidingSpeed=-1.0, Real a_highThickness=-1.0, bool a_includeEffectivePressure=false)
 
virtual ~BasalFrictionPowerLaw ()
 
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 $ \alpha $ such that $ \tau_b = \alpha (u_b, C) u_b $. More...
 
BasalFrictionRelationgetNewBasalFrictionRelation () const
 creates a new copy of subclass objects. More...
 
virtual Real power () const
 
- Public Member Functions inherited from BasalFrictionRelation
virtual ~BasalFrictionRelation ()
 
virtual void updateThermodynamics (Vector< LevelData< FArrayBox > * > *a_tillWaterDepth)
 
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
 Compute cell-centered dissipation rate $ s = T_b . u_b / k_ice $. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from BasalFrictionRelation
static BasalFrictionRelationparse (const char *a_prefix, int a_recursion)
 Run-time configuration of BasalFrictionRelation objects. More...
 

Detailed Description

implements BasalFrictionRelation to provide a power law

$ \tau_b = - C h_{ab}^n |u_b|^{m-1} u_b $

where $tau_b$ is the basal traction, $C$ is a coefficient not dependent on velocity, $h_{ab}$ is the thickness above flotation, $u_b$ is the basal velocity, and $n,m$ are exponents. Typically $m \leq 1$.

An optional factor $ (|u_b|/|u_r| + 1)^{-m} ) $ is available (see Joughin 2019) that lead $ d|T_b|/d|u| \rightarrow -> 0$ as $|u| \rightarrow \infty $

An alternate version of the above, $ N (N_r^{1/m} |u_b|/|u_r| + N^{1/m} )^{-m} ) $ is available

Run-time configuation is carried out in BasalFrictionRelation::parse. If the string A.B.basalFrictionRelation = powerLaw is found, the expected form is

if includeEffectivePressure, $n = m$ so that there is a dependence on the thickness over flotation $h_ab$. Otherwise, $n = 0$. Do not use this option!

Constructor & Destructor Documentation

◆ BasalFrictionPowerLaw()

BasalFrictionPowerLaw::BasalFrictionPowerLaw ( Real  a_m,
Real  a_fastSlidingSpeed = -1.0,
Real  a_highThickness = -1.0,
bool  a_includeEffectivePressure = false 
)
inline

◆ ~BasalFrictionPowerLaw()

virtual BasalFrictionPowerLaw::~BasalFrictionPowerLaw ( )
inlinevirtual

Member Function Documentation

◆ computeAlpha()

void BasalFrictionPowerLaw::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
virtual

Computes cell-centered effective basal friction coeffcient $ \alpha $ such that $ \tau_b = \alpha (u_b, C) u_b $.

Parameters
a_alphaeffective basal friction coefficient based on the local velocity field.
a_basalVelCell-centered basal velocity field.
a_CCell-centered coefficient field
a_coordswhole level geometry data
a_ditindex needed to retrieve data from a_coords
a_boxcell-centered box over which to do this computation

Implements BasalFrictionRelation.

References LevelSigmaCS::getFloatingMask(), and LevelSigmaCS::getThicknessOverFlotation().

◆ getNewBasalFrictionRelation()

BasalFrictionRelation* BasalFrictionPowerLaw::getNewBasalFrictionRelation ( ) const
inlinevirtual

creates a new copy of subclass objects.

Implements BasalFrictionRelation.

◆ power()

virtual Real BasalFrictionPowerLaw::power ( ) const
inlinevirtual

Implements BasalFrictionRelation.


The documentation for this class was generated from the following files: