BISICLES AMR ice sheet model  0.9
twistyStreamFriction.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3 * _______ __
4 * / ___/ / ___ __ _ / / ___
5 * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6 * \___/_//_/\___/_/_/_/_.__/\___/
7 * Please refer to Copyright.txt, in Chombo's root directory.
8 */
9 #endif
10 
11 // Virtual base class encapsulating coefficient of basal friction
12 // for ice-sheet model
13 
14 #ifndef _TWISTYSTREAMFRICTION_H_
15 #define _TWISTYSTREAMFRICTION_H_
16 
17 #include "BasalFriction.H"
18 #include "LevelData.H"
19 #include "FArrayBox.H"
20 #include "LevelSigmaCS.H"
21 
22 #include "NamespaceHeader.H"
23 
25 
32 {
33 public:
36 
37  twistyStreamFriction(const Real& a_betaVal,
38  const RealVect& a_omega,
39  const Real& m_magOffset,
40  const Real& a_eps,
41  const RealVect& a_domainSize);
42 
44  virtual ~twistyStreamFriction();
45 
47 
49  virtual BasalFriction* new_basalFriction() const;
50 
52 
56  virtual void setBasalFriction(LevelData<FArrayBox>& a_betaSqr,
57  LevelSigmaCS& a_coordSys,
58  Real a_time,
59  Real a_dt);
60 
62  void setParameters(const Real& a_betaVal,
63  const RealVect& a_omega,
64  const Real& a_magOffset,
65  const Real& a_eps,
66  const RealVect& a_domainSize);
67 
68  Real m_betaVal;
69  RealVect m_omega;
71  Real m_eps;
72  RealVect m_domainSize;
73 
74 private:
75  // Disallowed for all the usual reasons
76  void operator=(const twistyStreamFriction& a_input)
77  {
78  MayDay::Error("invalid operator");
79  }
80 
81  // Disallowed for all the usual reasons
83  {
84  MayDay::Error("invalid operator");
85  }
86 };
87 
88 
89 #include "NamespaceFooter.H"
90 
91 
92 #endif // multiple-include preventer
Real m_eps
Definition: twistyStreamFriction.H:71
virtual ~twistyStreamFriction()
destructor
Definition: twistyStreamFriction.cpp:40
simple basal friction resulting in a twisting ice stream
Definition: twistyStreamFriction.H:31
twistyStreamFriction()
constructor
Definition: twistyStreamFriction.cpp:24
virtual void setBasalFriction(LevelData< FArrayBox > &a_betaSqr, LevelSigmaCS &a_coordSys, Real a_time, Real a_dt)
define basal friction coefficient beta^2 and place in a_betaSqr
Definition: twistyStreamFriction.cpp:66
virtual BasalFriction * new_basalFriction() const
factory method
Definition: twistyStreamFriction.cpp:48
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
Real m_magOffset
Definition: twistyStreamFriction.H:70
void setParameters(const Real &a_betaVal, const RealVect &a_omega, const Real &a_magOffset, const Real &a_eps, const RealVect &a_domainSize)
set friction value in Pa*a/m)
Definition: twistyStreamFriction.cpp:103
Definition: BasalFriction.H:28
Real m_betaVal
Definition: twistyStreamFriction.H:68
RealVect m_omega
Definition: twistyStreamFriction.H:69
RealVect m_domainSize
Definition: twistyStreamFriction.H:72
BasalFriction where is constant in space and time.
Definition: BasalFriction.H:114