BISICLES AMR ice sheet model  0.9
GaussianBumpFriction.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 #ifndef _GAUSSIANBUMPFRICTION_H_
12 #define _GAUSSIANBUMPFRICTION_H_
13 
14 #include "BasalFriction.H"
15 
16 #include "NamespaceHeader.H"
17 
19 /*
20 C = C0 * (1 - a exp( - (x-bx)^2/(2 * cx^2) - (y-by)^2/(2 * cy^2))
21 
22 C0, a, b, c can be time dependent, such that C0 = C0[i] etc where t < t[i]
23 
24 */
25 
27 {
28 
29 public:
31  {;}
32 
33  GaussianBumpFriction(const Vector<Real>& a_t,
34  const Vector<Real>& a_C0,
35  const Vector<Real>& a_a,
36  const Vector<RealVect>& a_b,
37  const Vector<RealVect>& a_c);
38 
40  {;}
41 
42  virtual BasalFriction* new_basalFriction() const;
43 
44  virtual void setBasalFriction(LevelData<FArrayBox>& a_C,
45  LevelSigmaCS& a_coordSys,
46  Real a_time,
47  Real a_dt);
48 
49 private:
50 
51  Vector<Real> m_t;
52  Vector<Real> m_C0;
53  Vector<Real> m_a;
54  Vector<RealVect> m_b;
55  Vector<RealVect> m_c;
56 
57  // Disallowed for all the usual reasons
59  {
60  MayDay::Error("invalid operator");
61  }
62 
63 };
64 #include "NamespaceFooter.H"
65 #endif
virtual BasalFriction * new_basalFriction() const
factory method
Definition: GaussianBumpFriction.cpp:27
basal friction with a gaussian bump centred on b
Definition: GaussianBumpFriction.H:26
virtual ~GaussianBumpFriction()
Definition: GaussianBumpFriction.H:39
GaussianBumpFriction()
Definition: GaussianBumpFriction.H:30
virtual void setBasalFriction(LevelData< FArrayBox > &a_C, LevelSigmaCS &a_coordSys, Real a_time, Real a_dt)
compute basal friction coefficient beta^2 and place in a_betaSqr
Definition: GaussianBumpFriction.cpp:33
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
Definition: BasalFriction.H:28