BISICLES AMR ice sheet model  0.9
HotspotFlux.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 #ifndef _HOTSPOTFLUX_H_
13 #define _HOTSPOTFLUX_H_
14 #include "SurfaceFlux.H"
15 
16 #include "NamespaceHeader.H"
17 
18 // simple version which sets surface flux to a hot spot in space and time
19 class HotspotFlux : public SurfaceFlux
20 {
21 public:
23  HotspotFlux();
24 
26  virtual ~HotspotFlux() {}
27 
29 
31  virtual SurfaceFlux* new_surfaceFlux();
32 
34 
38  virtual void surfaceThicknessFlux(LevelData<FArrayBox>& a_flux,
39  const AmrIceBase& a_amrIce,
40  int a_level, Real a_dt);
41 
43  void setFluxVal(const Real& a_fluxVal);
44 
46  void setSpotLoc(Real a_radius, RealVect a_center);
47 
49  void setSpotLoc(RealVect a_radius, RealVect a_center);
50 
52  void setSpotTimes(Real a_startTime, Real a_stopTime);
53 
54 protected:
56  Real m_fluxVal;
57 
59  RealVect m_radius;
60 
62  RealVect m_center;
63 
66 
68  Real m_stopTime;
69 
71  bool m_isValSet;
72  bool m_isLocSet;
73 
74 private:
75  // Disallowed for all the usual reasons
76  void operator=(const constantFlux& a_input)
77  {
78  MayDay::Error("invalid operator");
79  }
80 
81  // Disallowed for all the usual reasons
82  HotspotFlux(const constantFlux& a_input)
83  {
84  MayDay::Error("invalid operator");
85  }
86 };
87 
88 
89 #include "NamespaceFooter.H"
90 #endif
bool m_isValSet
checks
Definition: HotspotFlux.H:71
Real m_fluxVal
amount of flux in hot spot
Definition: HotspotFlux.H:56
Real m_startTime
time at which hot spot turns on
Definition: HotspotFlux.H:65
RealVect m_center
center of hot spot
Definition: HotspotFlux.H:62
simple implementation of SurfaceFlux which sets surface flux to a constant in space and time ...
Definition: SurfaceFlux.H:168
virtual ~HotspotFlux()
destructor
Definition: HotspotFlux.H:26
HotspotFlux()
constructor
Definition: HotspotFlux.cpp:18
void setSpotTimes(Real a_startTime, Real a_stopTime)
set start and stop times
Definition: HotspotFlux.cpp:124
void setSpotLoc(Real a_radius, RealVect a_center)
set location of (circular) hot spot
Definition: HotspotFlux.cpp:105
RealVect m_radius
radius of hot spot
Definition: HotspotFlux.H:59
abstract class defining the surface flux interface
Definition: SurfaceFlux.H:39
Definition: HotspotFlux.H:19
bool m_isLocSet
Definition: HotspotFlux.H:72
Real m_stopTime
time at which hot spot turns off
Definition: HotspotFlux.H:68
virtual void surfaceThicknessFlux(LevelData< FArrayBox > &a_flux, const AmrIceBase &a_amrIce, int a_level, Real a_dt)
define source term for thickness evolution and place it in flux
Definition: HotspotFlux.cpp:49
virtual SurfaceFlux * new_surfaceFlux()
factory method
Definition: HotspotFlux.cpp:27
abstract base class for amr ice sheet models (AmrIce, AMRIceControl)
Definition: AmrIceBase.H:21
void setFluxVal(const Real &a_fluxVal)
set flux value in meters/year
Definition: HotspotFlux.cpp:96