ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_NullMoistLagrangian.H
Go to the documentation of this file.
1 /*! @file ERF_NullMoistLagrangian.H
2  * \brief Contains the Lagrangian moisture model base class */
3 
4 #ifndef ERF_NULLMOISTLAGRANGIAN_H
5 #define ERF_NULLMOISTLAGRANGIAN_H
6 
7 #ifdef ERF_USE_PARTICLES
8 
9 #include <AMReX_AmrParGDB.H>
10 #include "ERF_NullMoist.H"
11 
12 /* forward declaration */
13 class ERFPC;
14 
15 /*! \brief Base class for a Lagrangian moisture model
16  *
17  * Extends #NullMoist for a Lagrangian model */
18 class NullMoistLagrangian : public NullMoist {
19 
20 public:
21 
22  /*! \brief Null constructor */
23  NullMoistLagrangian () {}
24 
25  /*! \brief Default destructor */
26  virtual ~NullMoistLagrangian () = default;
27 
28  /*! \brief Initialize particles */
29  virtual
30  void InitParticles ( std::unique_ptr<amrex::MultiFab>& ) { }
31 
32  /*! \brief Restart particles */
33  virtual
34  void RestartParticles ( amrex::ParGDBBase*, const std::string& ) { }
35 
36  /*! \brief get the particle container */
37  virtual ERFPC* getParticleContainer ()
38  {
39  return nullptr;
40  }
41 
42  /*! \brief get the name */
43  virtual const std::string& getName () const
44  {
45  return m_name;
46  }
47 
48  using NullMoist::Advance;
49 
50  /*! \brief advance the moisture model by one time step */
51  virtual void
52  Advance (const amrex::Real&, /* dt */
53  const int&, /* iter */
54  const amrex::Real&, /* time */
55  amrex::Vector<amrex::Vector<amrex::MultiFab>>&, /* state variables */
56  const amrex::Vector<std::unique_ptr<amrex::MultiFab>>& /* terrain */) { }
57 
58 protected:
59 
60 private:
61  const std::string m_name = "null"; /*!< name of the moisture model */
62 };
63 
64 #endif
65 #endif
Definition: ERF_NullMoist.H:8
virtual void Advance(const amrex::Real &, const SolverChoice &)
Definition: ERF_NullMoist.H:29