BISICLES AMR ice sheet model  0.9
AmrIceBase.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 AMR_ICE_BASE_H
12 #define AMR_ICE_BASE_H
13 
14 #include "LevelData.H"
15 #include "FArrayBox.H"
16 #include "LevelSigmaCS.H"
17 #include "SurfaceFlux.H"
18 #include "NamespaceHeader.H"
19 
22 {
23 
24 public:
25 
26  virtual ~AmrIceBase(){}
27 
28  virtual Real time() const = 0;
29 
30  //acess the ice sheet geometry
31  virtual int finestLevel() const = 0;
32  virtual const RealVect dx(int a_level) const = 0;
33  virtual const RefCountedPtr<LevelSigmaCS> geometry(int a_level) const = 0;
34  virtual const DisjointBoxLayout& grids(int a_level) const = 0;
35  //virtual const Vector<DisjointBoxLayout>& grids() const = 0;
36  //virtual const Vector<RefCountedPtr<LevelSigmaCS> >& amrGeometry() const = 0;
37  virtual const Vector<int>& refRatios() const = 0;
38  //virtual const Vector<Real>& amrDx() const = 0;
39 
40  //access to the velocity
41  virtual const LevelData<FArrayBox>* velocity(int a_level) const = 0;
42  //virtual const Vector<LevelData<FArrayBox>* >& amrVelocity() const = 0;
43 
44  //access to the upper surface heat boundary data
45  virtual SurfaceFlux& surfaceHeatBoundaryData() const = 0;
46  virtual bool surfaceHeatBoundaryDirichlett() const = 0;
47  virtual bool surfaceHeatBoundaryTemperature() const = 0;
48 
49  //access to the lower surface heat boundary data
50  virtual SurfaceFlux& basalHeatBoundaryData() const =0;
51 
52  //grouding line proximity
53  virtual const LevelData<FArrayBox>* groundingLineProximity(int a_level) const = 0;
54  virtual Real groundingLineProximityScale() const = 0;
55 
56  // viscous tensor
58  //virtual const LevelData<FArrayBox>* viscousTensor(int a_level) const = 0;
59  //virtual const LevelData<FArrayBox>* dragCoefficient(int a_level) const = 0;
60  // virtual const LevelData<FArrayBox>* viscosityCoefficient(int a_level) const = 0;
61 
62  // access function for layered face-centered velocities
63  //virtual const Vector<LevelData<FluxBox>* >& faceVelocitiesLayered() const = 0;
64  // access function for calved ice thickness
65  //virtual const Vector<LevelData<FArrayBox>* >& calvedIceThickness() const = 0;
66  // access function for surface temperature
67  //virtual const Vector<LevelData<FArrayBox>* >& surfaceInternalEnergy() const = 0;
68  // access function for surface heat flux
69  //virtual const Vector<LevelData<FArrayBox>* >& surfaceHeatFlux() const = 0;
70 
71 #ifdef CH_USE_HDF5
72 
90  virtual void writeAMRHierarchyHDF5(const string& filename,
91  const Vector<DisjointBoxLayout>& a_grids,
92  const Vector<LevelData<FArrayBox>* > & a_data,
93  const Vector<string>& a_name,
94  const Box& a_domain,
95  const Real& a_dx,
96  const Real& a_dt,
97  const Real& a_time,
98  const Vector<int>& a_ratio,
99  const int& a_numLevels) const = 0;
100 
101 #endif
102 };
103 
104 #include "NamespaceFooter.H"
105 #endif
virtual const RealVect dx(int a_level) const =0
viscousTensorComponent
Definition: AmrIceBase.H:57
Definition: AmrIceBase.H:57
virtual SurfaceFlux & basalHeatBoundaryData() const =0
virtual const LevelData< FArrayBox > * velocity(int a_level) const =0
virtual int finestLevel() const =0
virtual const Vector< int > & refRatios() const =0
Definition: AmrIceBase.H:57
virtual ~AmrIceBase()
Definition: AmrIceBase.H:26
virtual const DisjointBoxLayout & grids(int a_level) const =0
abstract class defining the surface flux interface
Definition: SurfaceFlux.H:39
virtual bool surfaceHeatBoundaryTemperature() const =0
virtual const RefCountedPtr< LevelSigmaCS > geometry(int a_level) const =0
virtual bool surfaceHeatBoundaryDirichlett() const =0
virtual Real groundingLineProximityScale() const =0
virtual SurfaceFlux & surfaceHeatBoundaryData() const =0
virtual void writeAMRHierarchyHDF5(const string &filename, const Vector< DisjointBoxLayout > &a_grids, const Vector< LevelData< FArrayBox > * > &a_data, const Vector< string > &a_name, const Box &a_domain, const Real &a_dx, const Real &a_dt, const Real &a_time, const Vector< int > &a_ratio, const int &a_numLevels) const =0
Write an AMR hierarchy to an hdf5 file.
virtual const LevelData< FArrayBox > * groundingLineProximity(int a_level) const =0
abstract base class for amr ice sheet models (AmrIce, AMRIceControl)
Definition: AmrIceBase.H:21
Definition: AmrIceBase.H:57
Definition: AmrIceBase.H:57
Definition: AmrIceBase.H:57
virtual Real time() const =0