BISICLES AMR ice sheet model  0.9
BasicThicknessIBC.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 //
12 // BasicThicknessIBC.H
13 // ============
14 //
15 // PhysIBC-derived class for basic (simple) IBC for ice-sheet thickness.
16 // this case sets the thickness at domain boundaries to a constant
17 // (set by the setBoundaryThickness function)
18 //
19 
20 #ifndef _BASICTHICKNESSIBC_H_
21 #define _BASICTHICKNESSIBC_H_
22 
23 #include "IceThicknessIBC.H"
24 
25 #include "NamespaceHeader.H"
26 
27 
29 
33 {
34 public:
36 
39 
41 
43  virtual ~BasicThicknessIBC();
44 
46 
50  virtual void define(const ProblemDomain& a_domain,
51  const Real& a_dx);
52 
54 
60 
61 #if 0
62  void setBoundaryThickness(Real a_boundaryThickness)
64  { m_boundaryThickness = a_boundaryThickness; }
65 #endif
66 
68 
70  virtual void initialize(LevelData<FArrayBox>& a_U);
71 
73 
76  virtual void initializeIceGeometry(LevelSigmaCS& a_coords,
77  const RealVect& a_dx,
78  const RealVect& a_domainSize,
79  const Real& a_time,
80  const LevelSigmaCS* a_crseCoords,
81  const int a_refRatio);
82 
83 
85 
87  virtual void primBC(FArrayBox& a_WGdnv,
88  const FArrayBox& a_Wextrap,
89  const FArrayBox& a_W,
90  const int& a_dir,
91  const Side::LoHiSide& a_side,
92  const Real& a_time);
93 
95 
100  virtual
101  void setBdrySlopes(FArrayBox& a_dW,
102  const FArrayBox& a_W,
103  const int& a_dir,
104  const Real& a_time);
105 
107 
109  virtual
110  void artViscBC(FArrayBox& a_F,
111  const FArrayBox& a_U,
112  const FArrayBox& a_divVel,
113  const int& a_dir,
114  const Real& a_time);
115 
117 
119  virtual RefCountedPtr<CompGridVTOBC> velocitySolveBC();
120 
121 protected:
122 
123  // ice sheet thickness at domain boundaries
125 
126  RealVect m_domainSize;
127 
128  // have bc's been set up?
130 
132  void setupBCs();
133 
134  RefCountedPtr<CompGridVTOBC> m_velBCs;
135 
136 private:
137  // Disallowed for all the usual reasons
138  void operator=(const BasicThicknessIBC& a_input)
139  {
140  MayDay::Error("invalid operator");
141  }
142 
143  // Disallowed for all the usual reasons
144  BasicThicknessIBC(const BasicThicknessIBC& a_input)
145  {
146  MayDay::Error("invalid operator");
147  }
148 };
149 
150 
151 
152 #include "NamespaceFooter.H"
153 #endif
Real m_boundaryThickness
Definition: BasicThicknessIBC.H:124
virtual void initialize(LevelData< FArrayBox > &a_U)
Set up initial conditions.
Definition: BasicThicknessIBC.cpp:164
void setBoundaryThickness(Real a_boundaryThickness)
set boundary ice-sheet thickness
Definition: BasicThicknessIBC.H:63
virtual void artViscBC(FArrayBox &a_F, const FArrayBox &a_U, const FArrayBox &a_divVel, const int &a_dir, const Real &a_time)
Adjust boundary fluxes to account for artificial viscosity.
Definition: BasicThicknessIBC.cpp:234
RealVect m_domainSize
Definition: BasicThicknessIBC.H:126
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
BasicThicknessIBC()
Constructor.
Definition: BasicThicknessIBC.cpp:122
bool m_isBCsetUp
Definition: BasicThicknessIBC.H:129
virtual void primBC(FArrayBox &a_WGdnv, const FArrayBox &a_Wextrap, const FArrayBox &a_W, const int &a_dir, const Side::LoHiSide &a_side, const Real &a_time)
Set boundary fluxes.
Definition: BasicThicknessIBC.cpp:174
RefCountedPtr< CompGridVTOBC > m_velBCs
Definition: BasicThicknessIBC.H:134
virtual void initializeIceGeometry(LevelSigmaCS &a_coords, const RealVect &a_dx, const RealVect &a_domainSize, const Real &a_time, const LevelSigmaCS *a_crseCoords, const int a_refRatio)
set up initial ice state
Definition: BasicThicknessIBC.cpp:268
virtual void setBdrySlopes(FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)
Set boundary slopes.
Definition: BasicThicknessIBC.cpp:222
virtual IceThicknessIBC * new_thicknessIBC()
Factory method - this object is its own factory.
Definition: BasicThicknessIBC.cpp:151
virtual ~BasicThicknessIBC()
Destructor.
Definition: BasicThicknessIBC.cpp:128
virtual void define(const ProblemDomain &a_domain, const Real &a_dx)
Define the object.
Definition: BasicThicknessIBC.cpp:139
Physical/domain initial and boundary conditions.
Definition: BasicThicknessIBC.H:32
virtual RefCountedPtr< CompGridVTOBC > velocitySolveBC()
return boundary condition for Ice velocity solve
Definition: BasicThicknessIBC.cpp:250
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
void setupBCs()
set up bc&#39;s based on parmparse inputs
Definition: BasicThicknessIBC.cpp:392