BISICLES AMR ice sheet model  0.9
VerticalConductionInternalEnergyIBC.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 // VerticalConductionInternalEnergyIBC.H
13 // ============
14 
15 #ifndef _VERTICALCONDUCTIONINTERNALENERGYIBC_H_
16 #define _VERTICALCONDUCTIONINTERNALENERGYIBC_H_
17 
18 #include "IceInternalEnergyIBC.H"
19 #include "ParmParse.H"
20 #include "SurfaceFlux.H"
21 #include "NamespaceHeader.H"
22 
24 
31 {
32 
33 public:
35 
39 
42 
44 
48  virtual void define(const ProblemDomain& a_domain,
49  const Real& a_dx);
50 
52 
58 
60  virtual void basalHeatFlux(LevelData<FArrayBox>& a_flux,
61  const AmrIceBase& a_amrIce,
62  int a_level, Real a_dt);
63 
64 #if BISICLES_Z == BISICLES_LAYERED
65  virtual void initializeIceInternalEnergy(LevelData<FArrayBox>& a_E,
66  LevelData<FArrayBox>& a_tillWaterDepth,
67  LevelData<FArrayBox>& a_surfaceE,
68  LevelData<FArrayBox>& a_basalE,
69  const AmrIceBase& a_amrIce,
70  int a_level, Real a_dt);
71 
72 #elif BISICLES_Z == BISICLES_FULLZ
73 #error BISICLES_FULLZ not implemented
74 #endif
75 
76  static VerticalConductionInternalEnergyIBC* parse(ParmParse&);
77 
78 private:
79 
80  SurfaceFlux* m_basalDissipation;
81 
82  SurfaceFlux& basalDissipation() const
83  {
84  if (m_basalDissipation == NULL)
85  {
86  CH_assert(m_basalDissipation != NULL);
87  MayDay::Error("no basal dissipation");
88  }
89  return *m_basalDissipation;
90  }
91 
92 
93  // Disallowed for all the usual reasons
94  void operator=(const VerticalConductionInternalEnergyIBC& a_input)
95  {
96  MayDay::Error("invalid operator");
97  }
98 
99  // Disallowed for all the usual reasons
101  {
102  MayDay::Error("invalid operator");
103  }
104 
105 };
106 
107 #include "NamespaceFooter.H"
108 #endif
virtual VerticalConductionInternalEnergyIBC * new_internalEnergyIBC()
Factory method - this object is its own factory.
Definition: VerticalConductionInternalEnergyIBC.cpp:167
virtual void initializeIceInternalEnergy(LevelData< FArrayBox > &a_E, LevelData< FArrayBox > &a_tillWaterDepth, LevelData< FArrayBox > &a_surfaceE, LevelData< FArrayBox > &a_basalE, const AmrIceBase &a_amrIce, int a_level, Real a_dt)
Definition: VerticalConductionInternalEnergyIBC.cpp:81
VerticalConductionInternalEnergyIBC(SurfaceFlux *a_basalDissipation)
Constructor.
Definition: VerticalConductionInternalEnergyIBC.cpp:39
static VerticalConductionInternalEnergyIBC * parse(ParmParse &)
Definition: VerticalConductionInternalEnergyIBC.cpp:32
virtual void define(const ProblemDomain &a_domain, const Real &a_dx)
Define the object.
Definition: VerticalConductionInternalEnergyIBC.cpp:61
abstract class defining the surface flux interface
Definition: SurfaceFlux.H:39
virtual void basalHeatFlux(LevelData< FArrayBox > &a_flux, const AmrIceBase &a_amrIce, int a_level, Real a_dt)
set a basal heat flux. units are Joules / Year
Definition: VerticalConductionInternalEnergyIBC.cpp:68
Partial implementation of IceInternalEnergyIBC, provides reflection (or periodic) boundary conditions...
Definition: IceInternalEnergyIBC.H:164
Physical/domain initial and boundary conditions.
Definition: VerticalConductionInternalEnergyIBC.H:30
abstract base class for amr ice sheet models (AmrIce, AMRIceControl)
Definition: AmrIceBase.H:21
virtual ~VerticalConductionInternalEnergyIBC()
Destructor.
Definition: VerticalConductionInternalEnergyIBC.cpp:52