12 #ifndef _BASALFRICTIONRELATION_H_ 13 #define _BASALFRICTIONRELATION_H_ 15 #include "FArrayBox.H" 16 #include "LevelData.H" 17 #include "NamespaceHeader.H" 52 const FArrayBox& a_basalVel,
53 const FArrayBox& a_C,
const Real& a_scale,
55 const DataIterator& a_dit,
57 const Box& a_box)
const = 0;
70 const FArrayBox& a_basalVel,
71 const FArrayBox& a_C,
const Real& a_scale,
73 const DataIterator& a_dit,
75 const Box& a_box)
const;
81 virtual Real
power()
const = 0;
124 Real a_fastSlidingSpeed = -1.0,
125 Real a_highThickness = -1.0 ,
126 bool a_includeEffectivePressure =
false)
127 : m_m(a_m), m_includeEffectivePressure(a_includeEffectivePressure) ,
128 m_fastSlidingSpeed(a_fastSlidingSpeed), m_highThickness(a_highThickness)
134 const FArrayBox& a_basalVel,
135 const FArrayBox& a_C,
const Real& a_scale,
137 const DataIterator& a_dit,
139 const Box& a_box)
const;
146 virtual Real
power()
const {
return m_m;}
150 bool m_includeEffectivePressure;
151 Real m_fastSlidingSpeed;
152 Real m_highThickness;
192 Real m_a, m_p, m_maxTillWaterDepth, m_tillPressureFactor;
194 Vector<LevelData<FArrayBox>* >* m_tillWaterDepth;
201 const FArrayBox& a_basalVel,
202 const FArrayBox& a_C,
const Real& a_scale,
204 const DataIterator& a_dit,
206 const Box& a_box)
const;
210 m_tillWaterDepth = a_tillWaterDepth;
213 const FArrayBox& a_basalVel,
214 const FArrayBox& a_C,
const Real& a_scale,
216 const DataIterator& a_dit,
218 const Box& a_box)
const;
222 Real a_tillPressureFactor,
224 : m_a(a_a), m_p(a_p), m_maxTillWaterDepth(a_maxTillWaterDepth),
225 m_tillPressureFactor(a_tillPressureFactor), m_model(a_model),
244 return m_bfr->
power();
251 #include "NamespaceFooter.H" Model
Definition: BasalFrictionRelation.H:189
virtual void updateThermodynamics(Vector< LevelData< FArrayBox > * > *a_tillWaterDepth)
Definition: BasalFrictionRelation.H:35
PressureLimitedBasalFrictionRelation(Real a_a, Real a_p, Real a_maxTillWaterDepth, Real a_tillPressureFactor, Model a_model, BasalFrictionRelation *a_bfr)
Definition: BasalFrictionRelation.H:221
virtual Real power() const =0
virtual BasalFrictionRelation * getNewBasalFrictionRelation() const
creates a new copy of subclass objects.
Definition: BasalFrictionRelation.H:232
Basal friction relation which satisfies Tb = min(|Tb'|, a*p) u/|u|.
Definition: BasalFrictionRelation.H:185
static BasalFrictionRelation * parse(const char *a_prefix, int a_recursion)
Run-time configuration of BasalFrictionRelation objects.
Definition: BasalFrictionRelation.cpp:192
implements BasalFrictionRelation to provide a power law
Definition: BasalFrictionRelation.H:119
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 =0
Computes cell-centered effective basal friction coeffcient such that .
virtual ~BasalFrictionRelation()
Definition: BasalFrictionRelation.H:31
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
Definition: BasalFrictionRelation.H:189
virtual BasalFrictionRelation * getNewBasalFrictionRelation() const =0
creates a new copy of subclass objects.
virtual Real power() const
Definition: BasalFrictionRelation.H:242
Virtual base class for basal friction relations.
Definition: BasalFrictionRelation.H:27
BasalFrictionPowerLaw(Real a_m, Real a_fastSlidingSpeed=-1.0, Real a_highThickness=-1.0, bool a_includeEffectivePressure=false)
Definition: BasalFrictionRelation.H:123
virtual Real power() const
Definition: BasalFrictionRelation.H:146
virtual ~BasalFrictionPowerLaw()
Definition: BasalFrictionRelation.H:131
BasalFrictionRelation * getNewBasalFrictionRelation() const
creates a new copy of subclass objects.
Definition: BasalFrictionRelation.H:141
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 .
Definition: BasalFrictionRelation.cpp:29
void updateThermodynamics(Vector< LevelData< FArrayBox > * > *a_tillWaterDepth)
Definition: BasalFrictionRelation.H:208