ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_NullMoist.H
Go to the documentation of this file.
1 #ifndef ERF_NULLMOIST_H
2 #define ERF_NULLMOIST_H
3 
4 #include <AMReX_MultiFabUtil.H>
5 #include <AMReX_Geometry.H>
6 #include <ERF_DataStruct.H>
7 
8 class NullMoist {
9 
10 public:
11  NullMoist () {}
12 
13  virtual ~NullMoist () = default;
14 
15  virtual
16  void
17  Define (SolverChoice& /*sc*/) { }
18 
19  virtual
20  void Init (const amrex::MultiFab& /*cons_in*/,
21  const amrex::BoxArray& /*grids*/,
22  const amrex::Geometry& /*geom*/,
23  const amrex::Real& /*dt_advance*/,
24  std::unique_ptr<amrex::MultiFab>& /*z_phys_nd*/,
25  std::unique_ptr<amrex::MultiFab>& /*detJ_cc*/) { }
26 
27  virtual
28  void
29  Advance (const amrex::Real& /*dt_advance*/,
30  const SolverChoice& /*solverChoce*/) { }
31 
32  virtual
33  void
34  Update_Micro_Vars (amrex::MultiFab& /*cons_in*/) { }
35 
36  virtual
37  void
38  Update_State_Vars (amrex::MultiFab& /*cons_in*/,
39  const amrex::MultiFab& /*z_phys_nd*/) { }
40 
41  virtual
42  void
43  Copy_State_to_Micro (const amrex::MultiFab& /*cons_in*/) { }
44 
45  virtual
46  void
47  Copy_Micro_to_State (amrex::MultiFab& /*cons_in*/) { }
48 
49  virtual
50  amrex::MultiFab*
51  Qmoist_Ptr (const int& /*varIdx*/ ) { return nullptr; }
52 
53  virtual
54  int
56 
57  virtual
58  int
60 
61  virtual
62  int
64 
65  virtual
66  int
68 
69  virtual
70  void
71  Qmoist_Restart_Vars ( const SolverChoice&, std::vector<int>& a_idx, std::vector<std::string>& a_names) const
72  {
73  a_idx.clear();
74  a_names.clear();
75  }
76 
77  virtual
78  void
79  GetPlotVarNames (amrex::Vector<std::string>& a_vec) const
80  {
81  a_vec.resize(0);
82  }
83 
84  virtual
85  void
86  GetPlotVar (const std::string& /* a_name */,
87  amrex::MultiFab& /* a_mf */ ) const
88  {
89  amrex::Abort("NullMoist::GetPlotVar() should never be called.");
90  }
91 
92  virtual
93  void
94  GetPlotVar (const std::string& a_name,
95  amrex::MultiFab& a_mf,
96  const int /*a_lev*/) const
97  {
98  GetPlotVar(a_name, a_mf);
99  }
100 
101  virtual
102  void
103  SetCurrentLevel (const int&) {}
104 
105  virtual
106  void
107  InitLevel (const int, const amrex::MultiFab&) {}
108 
109  virtual
110  int
111  getDiagnosticsInterval () const { return 0; }
112 
113  virtual
114  void
115  Set_dzmin (const amrex::Real /*dz_min*/) { }
116 
117  virtual
118  void
119  // Current SatAdj/Kessler development paths do not trim by real width, but
120  // tests still exercise Set_RealWidth(0/1/2) as a future-proof contract.
121  // Keep the base hook as a no-op unless a concrete microphysics model
122  // chooses to implement width-sensitive behavior.
123  Set_RealWidth (const int /*real_width*/) { }
124 
125 
126 private:
127  int m_qmoist_size = 0;
131 };
132 
133 #endif
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_NullMoist.H:8
int m_qstate_moist_size
Definition: ERF_NullMoist.H:128
virtual void SetCurrentLevel(const int &)
Definition: ERF_NullMoist.H:103
virtual void Copy_Micro_to_State(amrex::MultiFab &)
Definition: ERF_NullMoist.H:47
virtual amrex::MultiFab * Qmoist_Ptr(const int &)
Definition: ERF_NullMoist.H:51
virtual void GetPlotVar(const std::string &, amrex::MultiFab &) const
Definition: ERF_NullMoist.H:86
virtual void Set_dzmin(const amrex::Real)
Definition: ERF_NullMoist.H:115
virtual void GetPlotVar(const std::string &a_name, amrex::MultiFab &a_mf, const int) const
Definition: ERF_NullMoist.H:94
int m_qmoist_size
Definition: ERF_NullMoist.H:127
virtual int getDiagnosticsInterval() const
Definition: ERF_NullMoist.H:111
virtual void Init(const amrex::MultiFab &, const amrex::BoxArray &, const amrex::Geometry &, const amrex::Real &, std::unique_ptr< amrex::MultiFab > &, std::unique_ptr< amrex::MultiFab > &)
Definition: ERF_NullMoist.H:20
virtual ~NullMoist()=default
virtual void Qmoist_Restart_Vars(const SolverChoice &, std::vector< int > &a_idx, std::vector< std::string > &a_names) const
Definition: ERF_NullMoist.H:71
virtual void InitLevel(const int, const amrex::MultiFab &)
Definition: ERF_NullMoist.H:107
virtual int Qstate_Moist_NumConc_Size()
Definition: ERF_NullMoist.H:63
virtual void Update_State_Vars(amrex::MultiFab &, const amrex::MultiFab &)
Definition: ERF_NullMoist.H:38
virtual void Set_RealWidth(const int)
Definition: ERF_NullMoist.H:123
int m_qstate_moist_numconc_size
Definition: ERF_NullMoist.H:129
NullMoist()
Definition: ERF_NullMoist.H:11
virtual int Qstate_NonMoist_Size()
Definition: ERF_NullMoist.H:67
virtual void Advance(const amrex::Real &, const SolverChoice &)
Definition: ERF_NullMoist.H:29
virtual void Define(SolverChoice &)
Definition: ERF_NullMoist.H:17
virtual void Copy_State_to_Micro(const amrex::MultiFab &)
Definition: ERF_NullMoist.H:43
virtual void GetPlotVarNames(amrex::Vector< std::string > &a_vec) const
Definition: ERF_NullMoist.H:79
int m_qstate_nonmoist_size
Definition: ERF_NullMoist.H:130
virtual int Qmoist_Size()
Definition: ERF_NullMoist.H:55
virtual void Update_Micro_Vars(amrex::MultiFab &)
Definition: ERF_NullMoist.H:34
virtual int Qstate_Moist_Size()
Definition: ERF_NullMoist.H:59
Definition: ERF_DataStruct.H:141