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  /*! \brief finish initializations steps that require flow variables */
50  virtual void FinishInit (const int&, /* AMR level */
51  amrex::MultiFab&, /* Conserved state variable */
52  const amrex::Vector<std::unique_ptr<amrex::MultiFab>>& /*terrain*/) {}
53 
54  void Advance ( const amrex::Real&, const SolverChoice& ) override
55  {
56  amrex::Abort("Do not use this advance() for Lagrangian microphysics.");
57  }
58 
59  /*! \brief advance the moisture model by one time step */
60  virtual void
61  Advance (const amrex::Real&, /* dt */
62  const int&, /* iter */
63  const amrex::Real&, /* time */
64  amrex::Vector<amrex::Vector<amrex::MultiFab>>&, /* state variables */
65  const amrex::Vector<std::unique_ptr<amrex::MultiFab>>&, /* terrain */
66  const amrex::GpuArray<ERF_BC, AMREX_SPACEDIM*2>& ) { }
67 
68 protected:
69 
70 private:
71  const std::string m_name = "null"; /*!< name of the moisture model */
72 };
73 
74 #endif
75 #endif
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_NullMoist.H:8
virtual void Advance(const amrex::Real &, const SolverChoice &)
Definition: ERF_NullMoist.H:29
Definition: ERF_DataStruct.H:129