ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
Microphysics Class Referenceabstract

Base class for microphysics interface. More...

#include <ERF_Microphysics.H>

Inheritance diagram for Microphysics:

Public Member Functions

 Microphysics ()
 Null constructor. More...
 
virtual ~Microphysics ()=default
 default destructor More...
 
virtual void Define (const int &, SolverChoice &)=0
 define the microphysics object More...
 
virtual void Init (const int &, const amrex::MultiFab &, const amrex::BoxArray &, const amrex::Geometry &, const amrex::Real &, std::unique_ptr< amrex::MultiFab > &, std::unique_ptr< amrex::MultiFab > &)=0
 initialize the microphysics object More...
 
virtual void Advance (const int &, const amrex::Real &, const int &, const amrex::Real &, const SolverChoice &, amrex::Vector< amrex::Vector< amrex::MultiFab >> &, const amrex::Vector< std::unique_ptr< amrex::MultiFab >> &, const amrex::GpuArray< ERF_BC, AMREX_SPACEDIM *2 > &)=0
 advance microphysics for one time step More...
 
virtual void Update_Micro_Vars_Lev (const int &, amrex::MultiFab &)=0
 update microphysics variables from ERF state variables More...
 
virtual void Update_State_Vars_Lev (const int &, amrex::MultiFab &)=0
 update ERF state variables from microphysics variables More...
 
virtual amrex::MultiFab * Get_Qmoist_Ptr (const int &, const int &)=0
 get pointer to a moisture variable More...
 
virtual int Get_Qmoist_Size (const int &)=0
 get the number of moisture model variables More...
 
virtual int Get_Qstate_Size ()=0
 get the number of moisture-model-related conserved state variables More...
 
virtual void Get_Qmoist_Restart_Vars (int, const SolverChoice &, std::vector< int > &, std::vector< std::string > &) const =0
 get the indices and names of moisture model variables for restart at a given level More...
 

Static Public Member Functions

static MoistureModelType modelType (const MoistureType a_moisture_type)
 query if a specified moisture model is Eulerian or Lagrangian More...
 

Detailed Description

Base class for microphysics interface.

Constructor & Destructor Documentation

◆ Microphysics()

Microphysics::Microphysics ( )
inline

Null constructor.

19 { }

◆ ~Microphysics()

virtual Microphysics::~Microphysics ( )
virtualdefault

default destructor

Member Function Documentation

◆ Advance()

virtual void Microphysics::Advance ( const int &  ,
const amrex::Real &  ,
const int &  ,
const amrex::Real &  ,
const SolverChoice ,
amrex::Vector< amrex::Vector< amrex::MultiFab >> &  ,
const amrex::Vector< std::unique_ptr< amrex::MultiFab >> &  ,
const amrex::GpuArray< ERF_BC, AMREX_SPACEDIM *2 > &   
)
pure virtual

advance microphysics for one time step

Implemented in EulerianMicrophysics.

◆ Define()

virtual void Microphysics::Define ( const int &  ,
SolverChoice  
)
pure virtual

define the microphysics object

Implemented in EulerianMicrophysics.

◆ Get_Qmoist_Ptr()

virtual amrex::MultiFab* Microphysics::Get_Qmoist_Ptr ( const int &  ,
const int &   
)
pure virtual

get pointer to a moisture variable

Implemented in EulerianMicrophysics.

◆ Get_Qmoist_Restart_Vars()

virtual void Microphysics::Get_Qmoist_Restart_Vars ( int  ,
const SolverChoice ,
std::vector< int > &  ,
std::vector< std::string > &   
) const
pure virtual

get the indices and names of moisture model variables for restart at a given level

Implemented in EulerianMicrophysics.

◆ Get_Qmoist_Size()

virtual int Microphysics::Get_Qmoist_Size ( const int &  )
pure virtual

get the number of moisture model variables

Implemented in EulerianMicrophysics.

◆ Get_Qstate_Size()

virtual int Microphysics::Get_Qstate_Size ( )
pure virtual

get the number of moisture-model-related conserved state variables

Implemented in EulerianMicrophysics.

◆ Init()

virtual void Microphysics::Init ( const int &  ,
const amrex::MultiFab &  ,
const amrex::BoxArray &  ,
const amrex::Geometry &  ,
const amrex::Real &  ,
std::unique_ptr< amrex::MultiFab > &  ,
std::unique_ptr< amrex::MultiFab > &   
)
pure virtual

initialize the microphysics object

Implemented in EulerianMicrophysics.

◆ modelType()

static MoistureModelType Microphysics::modelType ( const MoistureType  a_moisture_type)
inlinestatic

query if a specified moisture model is Eulerian or Lagrangian

70  {
71  if ( (a_moisture_type == MoistureType::SAM)
72  || (a_moisture_type == MoistureType::SAM_NoIce)
73  || (a_moisture_type == MoistureType::SAM_NoPrecip_NoIce)
74  || (a_moisture_type == MoistureType::Kessler)
75  || (a_moisture_type == MoistureType::Kessler_NoRain)
76  || (a_moisture_type == MoistureType::SatAdj)
77  || (a_moisture_type == MoistureType::None) ) {
78  return MoistureModelType::Eulerian;
79  } else {
80  amrex::Abort("Dont know this moisture_type!") ;
81  return MoistureModelType::Undefined;
82  }
83  }

Referenced by EulerianMicrophysics::EulerianMicrophysics(), ERF::InitData_post(), ERF::initializeMicrophysics(), and ERF::ReadCheckpointFile().

Here is the caller graph for this function:

◆ Update_Micro_Vars_Lev()

virtual void Microphysics::Update_Micro_Vars_Lev ( const int &  ,
amrex::MultiFab &   
)
pure virtual

update microphysics variables from ERF state variables

Implemented in EulerianMicrophysics.

◆ Update_State_Vars_Lev()

virtual void Microphysics::Update_State_Vars_Lev ( const int &  ,
amrex::MultiFab &   
)
pure virtual

update ERF state variables from microphysics variables

Implemented in EulerianMicrophysics.


The documentation for this class was generated from the following file: