ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <prob_common.H>
Public Member Functions | |
virtual | ~ProblemBase ()=default |
virtual void | erf_init_dens_hse (amrex::MultiFab &, std::unique_ptr< amrex::MultiFab > &, std::unique_ptr< amrex::MultiFab > &, amrex::Geometry const &) |
virtual void | erf_init_dens_hse_moist (amrex::MultiFab &, std::unique_ptr< amrex::MultiFab > &, amrex::Geometry const &) |
virtual void | init_custom_pert (const amrex::Box &, const amrex::Box &, const amrex::Box &, const amrex::Box &, amrex::Array4< amrex::Real const > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real > const &, amrex::Array4< amrex::Real const > const &, amrex::Array4< amrex::Real const > const &, amrex::GeometryData const &, amrex::Array4< amrex::Real const > const &, amrex::Array4< amrex::Real const > const &, amrex::Array4< amrex::Real const > const &, const SolverChoice &) |
virtual void | update_rhotheta_sources (const amrex::Real &, amrex::Vector< amrex::Real > &src, amrex::Gpu::DeviceVector< amrex::Real > &d_src, const amrex::Geometry &geom, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
virtual void | update_rhoqt_sources (const amrex::Real &, amrex::Vector< amrex::Real > &qsrc, amrex::Gpu::DeviceVector< amrex::Real > &d_qsrc, const amrex::Geometry &geom, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
virtual void | update_w_subsidence (const amrex::Real &, amrex::Vector< amrex::Real > &wbar, amrex::Gpu::DeviceVector< amrex::Real > &d_wbar, const amrex::Geometry &geom, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
virtual void | update_geostrophic_profile (const amrex::Real &, amrex::Vector< amrex::Real > &u_geos, amrex::Gpu::DeviceVector< amrex::Real > &d_u_geos, amrex::Vector< amrex::Real > &v_geos, amrex::Gpu::DeviceVector< amrex::Real > &d_v_geos, const amrex::Geometry &geom, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
virtual void | init_custom_terrain (const amrex::Geometry &, amrex::MultiFab &z_phys_nd, const amrex::Real &) |
virtual void | init_custom_terrain (const amrex::Geometry &, amrex::FArrayBox &z_phys_nd, const amrex::Real &) |
virtual void | erf_init_rayleigh (amrex::Vector< amrex::Vector< amrex::Real > > &, amrex::Geometry const &, std::unique_ptr< amrex::MultiFab > &) |
void | init_uniform (const amrex::Box &bx, amrex::Array4< amrex::Real > const &state) |
Protected Member Functions | |
void | init_base_parms (amrex::Real rho_0, amrex::Real T_0) |
virtual std::string | name ()=0 |
Protected Attributes | |
ProbParmDefaults | base_parms |
Class to hold problem-specific routines
|
virtualdefault |
Virtual destructor to avoid data leakage with derived class
|
inlinevirtual |
Function to initialize the hydrostatic reference density
[out] | rho_hse | hydrostatic reference density |
[in] | z_phys_nd | height coordinate at nodes |
[in] | z_phys_cc | height coordinate at cell centers |
[in] | geom | container for geometric information |
|
inlinevirtual |
|
inlinevirtual |
Function to define the quantities needed to impose Rayleigh damping
[out] | rayleigh_ptrs | = {strength of Rayleigh damping, reference values for xvel/yvel/zvel/theta used to define Rayleigh damping} |
[in] | geom | container for geometric information |
[in] | z_phys_cc | height coordinate at cell centers |
|
inlineprotected |
Function to update default base parameters, currently only used for init_type=='uniform'
|
inlinevirtual |
Function to perform custom initialization of a test problem
[in] | bx | cell-centered box on which to initialize scalars |
[in] | xbx | box on which to initialize x-component of velocity |
[in] | ybx | box on which to initialize y-component of velocity |
[in] | zbx | box on which to initialize z-component of velocity |
[out] | state | cell-centered variables to be filled in this routine |
[out] | x_velocity | x-component of velocity to be filled in this routine |
[out] | y_velocity | y-component of velocity to be filled in this routine |
[out] | z_velocity | z-component of velocity to be filled in this routine |
[out] | r_hse | hydrostatic reference density |
[out] | p_hse | hydrostatic reference pressure |
[in] | z_nd | height coordinate at nodes |
[in] | z_cc | height coordinate at cell centers |
[in] | qv | water vapor |
[in] | qc | cloud water |
[in] | qi | cloud ice |
[in] | mf_m | map factor on cell centers |
[in] | mf_u | map factor on x-faces |
[in] | mf_v | map factor on y-faces |
[in] | sc | SolverChoice structure that carries parameters |
|
inlinevirtual |
Function to perform custom initialization of terrain
This version takes a single FArrayBox instead of a MultiFab
|
inlinevirtual |
Function to perform custom initialization of terrain
Note: Terrain functionality can also be used to provide grid stretching.
[in] | geom | container for geometric information |
[out] | z_phys_nd | height coordinate at nodes |
[in] | time | current time |
|
inline |
Function to set uniform background density and pressure fields
|
protectedpure virtual |
Referenced by erf_init_dens_hse(), erf_init_rayleigh(), init_custom_pert(), update_geostrophic_profile(), update_rhoqt_sources(), update_rhotheta_sources(), and update_w_subsidence().
|
inlinevirtual |
Function to update user-specified temperature source terms that can vary with time and height.
[in] | time | current time |
[out] | u_geos | geostrophic wind profile |
[out] | v_geos | geostrophic wind profile |
[in] | geom | container for geometric information |
[in] | z_phys_cc | height coordinate at cell centers |
|
inlinevirtual |
Function to update user-specified temperature source terms that can vary with time and height.
[in] | time | current time |
[out] | rhoqt_source | moisture forcing profile |
[in] | geom | container for geometric information |
[in] | z_phys_cc | height coordinate at cell centers |
|
inlinevirtual |
Function to update user-specified temperature source terms that can vary with time and height.
[in] | time | current time |
[out] | rhotheta_source | forcing profile |
[in] | geom | container for geometric information |
[in] | z_phys_cc | height coordinate at cell centers |
|
inlinevirtual |
Function to update user-specified temperature source terms that can vary with time and height.
[in] | time | current time |
[out] | wbar | w vel forcing profile |
[in] | geom | container for geometric information |
[in] | z_phys_cc | height coordinate at cell centers |
|
protected |
Referenced by init_base_parms(), and init_uniform().