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_IndexDefines.H"
11 #include "ERF_NullMoist.H"
12 
13 /* forward declaration */
14 class ERFPC;
15 
16 /*! \brief Base class for a Lagrangian moisture model
17  *
18  * Extends #NullMoist for a Lagrangian model */
19 class NullMoistLagrangian : public NullMoist {
20 
21 public:
22 
23  /*! \brief Null constructor */
24  NullMoistLagrangian () {}
25 
26  /*! \brief Default destructor */
27  virtual ~NullMoistLagrangian () = default;
28 
29  /*! \brief Initialize particles */
30  virtual
31  void InitParticles ( std::unique_ptr<amrex::MultiFab>& ) { }
32 
33  /*! \brief Restart particles */
34  virtual
35  void RestartParticles ( amrex::ParGDBBase*, const std::string& ) { }
36 
37  /*! \brief get the particle container */
38  virtual ERFPC* getParticleContainer ()
39  {
40  return nullptr;
41  }
42 
43  /*! \brief get the name */
44  virtual const std::string& getName () const
45  {
46  return m_name;
47  }
48 
49  using NullMoist::Advance;
50 
51  /*! \brief advance the moisture model by one time step */
52  virtual void
53  Advance (const amrex::Real&, /* dt */
54  const int&, /* iter */
55  const amrex::Real&, /* time */
56  amrex::Vector<amrex::Vector<amrex::MultiFab>>&, /* state variables */
57  const amrex::Vector<std::unique_ptr<amrex::MultiFab>>&, /* terrain */
58  const amrex::GpuArray<ERF_BC, AMREX_SPACEDIM*2>& ) { }
59 
60 protected:
61 
62 private:
63  const std::string m_name = "null"; /*!< name of the moisture model */
64 };
65 
66 #endif
67 #endif
Definition: ERF_NullMoist.H:8
virtual void Advance(const amrex::Real &, const SolverChoice &)
Definition: ERF_NullMoist.H:29