ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <AMReX_MultiFab.H>
#include <AMReX_BCRec.H>
#include <AMReX_YAFluxRegister.H>
#include "ERF_DataStruct.H"
#include "ERF_IndexDefines.H"
#include "ERF_ABLMost.H"
#include <ERF_Advection.H>
#include <ERF_Diffusion.H>
#include <ERF_EddyViscosity.H>
#include <ERF_PlaneAverage.H>
#include <ERF_TerrainMetrics.H>
#include <ERF_TileNoZ.H>
Go to the source code of this file.
Functions | |
void | erf_make_tau_terms (int level, int nrk, const amrex::Vector< amrex::BCRec > &domain_bcs_type, std::unique_ptr< amrex::MultiFab > &z_phys_nd, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &zvel, amrex::MultiFab &Omega, amrex::MultiFab *Tau11, amrex::MultiFab *Tau22, amrex::MultiFab *Tau33, amrex::MultiFab *Tau12, amrex::MultiFab *Tau13, amrex::MultiFab *Tau21, amrex::MultiFab *Tau23, amrex::MultiFab *Tau31, amrex::MultiFab *Tau32, amrex::MultiFab *SmnSmn, amrex::MultiFab *eddyDiffs, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< ABLMost > &most, std::unique_ptr< amrex::MultiFab > &dJ, std::unique_ptr< amrex::MultiFab > &mapfac_m, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v) |
void | erf_slow_rhs_pre (int level, int finest_level, int nrk, amrex::Real dt, amrex::Vector< amrex::MultiFab > &S_rhs, amrex::Vector< amrex::MultiFab > &S_old, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, amrex::Vector< amrex::MultiFab > &S_scratch, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &zvel, std::unique_ptr< amrex::MultiFab > &z_t, amrex::MultiFab &Omega, const amrex::MultiFab &cc_src, const amrex::MultiFab &xmom_src, const amrex::MultiFab &ymom_src, const amrex::MultiFab &zmom_src, amrex::MultiFab *Tau11, amrex::MultiFab *Tau22, amrex::MultiFab *Tau33, amrex::MultiFab *Tau12, amrex::MultiFab *Tau13, amrex::MultiFab *Tau21, amrex::MultiFab *Tau23, amrex::MultiFab *Tau31, amrex::MultiFab *Tau32, amrex::MultiFab *SmnSmn, amrex::MultiFab *eddyDiffs, amrex::MultiFab *Hfx1, amrex::MultiFab *Hfx2, amrex::MultiFab *Hfx3, amrex::MultiFab *Q1fx1, amrex::MultiFab *Q1fx2, amrex::MultiFab *Q1fx3, amrex::MultiFab *Q2fx3, amrex::MultiFab *Diss, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< ABLMost > &most, const amrex::Gpu::DeviceVector< amrex::BCRec > &domain_bcs_type_d, const amrex::Vector< amrex::BCRec > &domain_bcs_type, std::unique_ptr< amrex::MultiFab > &z_phys_nd, std::unique_ptr< amrex::MultiFab > &ax, std::unique_ptr< amrex::MultiFab > &ay, std::unique_ptr< amrex::MultiFab > &az, std::unique_ptr< amrex::MultiFab > &dJ, const amrex::MultiFab *p0, std::unique_ptr< amrex::MultiFab > &mapfac_m, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v, amrex::YAFluxRegister *fr_as_crse, amrex::YAFluxRegister *fr_as_fine) |
void | erf_slow_rhs_post (int level, int finest_level, int nrk, amrex::Real dt, int n_qstate, amrex::Vector< amrex::MultiFab > &S_rhs, amrex::Vector< amrex::MultiFab > &S_old, amrex::Vector< amrex::MultiFab > &S_new, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, amrex::Vector< amrex::MultiFab > &S_scratch, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &zvel, const amrex::MultiFab &source, const amrex::MultiFab *SmnSmn, const amrex::MultiFab *eddyDiffs, amrex::MultiFab *Hfx1, amrex::MultiFab *Hfx2, amrex::MultiFab *Hfx3, amrex::MultiFab *Q1fx1, amrex::MultiFab *Q1fx2, amrex::MultiFab *Q1fx3, amrex::MultiFab *Q2fx3, amrex::MultiFab *Diss, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< ABLMost > &most, const amrex::Gpu::DeviceVector< amrex::BCRec > &domain_bcs_type_d, const amrex::Vector< amrex::BCRec > &domain_bcs_type, std::unique_ptr< amrex::MultiFab > &z_phys_nd, std::unique_ptr< amrex::MultiFab > &ax, std::unique_ptr< amrex::MultiFab > &ay, std::unique_ptr< amrex::MultiFab > &az, std::unique_ptr< amrex::MultiFab > &dJ_old, std::unique_ptr< amrex::MultiFab > &dJ_new, std::unique_ptr< amrex::MultiFab > &mapfac_m, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v, amrex::YAFluxRegister *fr_as_crse, amrex::YAFluxRegister *fr_as_fine) |
void | erf_slow_rhs_inc (int level, int nrk, amrex::Real dt, amrex::Vector< amrex::MultiFab > &S_rhs, amrex::Vector< amrex::MultiFab > &S_old, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, amrex::Vector< amrex::MultiFab > &S_scratch, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &zvel, amrex::MultiFab &Omega, const amrex::MultiFab &cc_src, const amrex::MultiFab &xmom_src, const amrex::MultiFab &ymom_src, const amrex::MultiFab &zmom_src, amrex::MultiFab *Tau11, amrex::MultiFab *Tau22, amrex::MultiFab *Tau33, amrex::MultiFab *Tau12, amrex::MultiFab *Tau13, amrex::MultiFab *Tau21, amrex::MultiFab *Tau23, amrex::MultiFab *Tau31, amrex::MultiFab *Tau32, amrex::MultiFab *SmnSmn, amrex::MultiFab *eddyDiffs, amrex::MultiFab *Hfx3, amrex::MultiFab *Diss, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< ABLMost > &most, const amrex::Gpu::DeviceVector< amrex::BCRec > &domain_bcs_type_d, const amrex::Vector< amrex::BCRec > &domain_bcs_type, std::unique_ptr< amrex::MultiFab > &z_phys_nd, std::unique_ptr< amrex::MultiFab > &ax, std::unique_ptr< amrex::MultiFab > &ay, std::unique_ptr< amrex::MultiFab > &az, std::unique_ptr< amrex::MultiFab > &dJ, const amrex::MultiFab *p0, const amrex::MultiFab &pp_inc, std::unique_ptr< amrex::MultiFab > &mapfac_m, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v) |
void erf_make_tau_terms | ( | int | level, |
int | nrk, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_nd, | ||
amrex::Vector< amrex::MultiFab > & | S_data, | ||
const amrex::MultiFab & | xvel, | ||
const amrex::MultiFab & | yvel, | ||
const amrex::MultiFab & | zvel, | ||
amrex::MultiFab & | Omega, | ||
amrex::MultiFab * | Tau11, | ||
amrex::MultiFab * | Tau22, | ||
amrex::MultiFab * | Tau33, | ||
amrex::MultiFab * | Tau12, | ||
amrex::MultiFab * | Tau13, | ||
amrex::MultiFab * | Tau21, | ||
amrex::MultiFab * | Tau23, | ||
amrex::MultiFab * | Tau31, | ||
amrex::MultiFab * | Tau32, | ||
amrex::MultiFab * | SmnSmn, | ||
amrex::MultiFab * | eddyDiffs, | ||
const amrex::Geometry | geom, | ||
const SolverChoice & | solverChoice, | ||
std::unique_ptr< ABLMost > & | most, | ||
std::unique_ptr< amrex::MultiFab > & | dJ, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_m, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_u, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_v | ||
) |
void erf_slow_rhs_inc | ( | int | level, |
int | nrk, | ||
amrex::Real | dt, | ||
amrex::Vector< amrex::MultiFab > & | S_rhs, | ||
amrex::Vector< amrex::MultiFab > & | S_old, | ||
amrex::Vector< amrex::MultiFab > & | S_data, | ||
const amrex::MultiFab & | S_prim, | ||
amrex::Vector< amrex::MultiFab > & | S_scratch, | ||
const amrex::MultiFab & | xvel, | ||
const amrex::MultiFab & | yvel, | ||
const amrex::MultiFab & | zvel, | ||
amrex::MultiFab & | Omega, | ||
const amrex::MultiFab & | cc_src, | ||
const amrex::MultiFab & | xmom_src, | ||
const amrex::MultiFab & | ymom_src, | ||
const amrex::MultiFab & | zmom_src, | ||
amrex::MultiFab * | Tau11, | ||
amrex::MultiFab * | Tau22, | ||
amrex::MultiFab * | Tau33, | ||
amrex::MultiFab * | Tau12, | ||
amrex::MultiFab * | Tau13, | ||
amrex::MultiFab * | Tau21, | ||
amrex::MultiFab * | Tau23, | ||
amrex::MultiFab * | Tau31, | ||
amrex::MultiFab * | Tau32, | ||
amrex::MultiFab * | SmnSmn, | ||
amrex::MultiFab * | eddyDiffs, | ||
amrex::MultiFab * | Hfx3, | ||
amrex::MultiFab * | Diss, | ||
const amrex::Geometry | geom, | ||
const SolverChoice & | solverChoice, | ||
std::unique_ptr< ABLMost > & | most, | ||
const amrex::Gpu::DeviceVector< amrex::BCRec > & | domain_bcs_type_d, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_nd, | ||
std::unique_ptr< amrex::MultiFab > & | ax, | ||
std::unique_ptr< amrex::MultiFab > & | ay, | ||
std::unique_ptr< amrex::MultiFab > & | az, | ||
std::unique_ptr< amrex::MultiFab > & | dJ, | ||
const amrex::MultiFab * | p0, | ||
const amrex::MultiFab & | pp_inc, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_m, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_u, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_v | ||
) |
Function for computing the slow RHS for the evolution equations for the density, potential temperature and momentum.
void erf_slow_rhs_post | ( | int | level, |
int | finest_level, | ||
int | nrk, | ||
amrex::Real | dt, | ||
int | n_qstate, | ||
amrex::Vector< amrex::MultiFab > & | S_rhs, | ||
amrex::Vector< amrex::MultiFab > & | S_old, | ||
amrex::Vector< amrex::MultiFab > & | S_new, | ||
amrex::Vector< amrex::MultiFab > & | S_data, | ||
const amrex::MultiFab & | S_prim, | ||
amrex::Vector< amrex::MultiFab > & | S_scratch, | ||
const amrex::MultiFab & | xvel, | ||
const amrex::MultiFab & | yvel, | ||
const amrex::MultiFab & | zvel, | ||
const amrex::MultiFab & | source, | ||
const amrex::MultiFab * | SmnSmn, | ||
const amrex::MultiFab * | eddyDiffs, | ||
amrex::MultiFab * | Hfx1, | ||
amrex::MultiFab * | Hfx2, | ||
amrex::MultiFab * | Hfx3, | ||
amrex::MultiFab * | Q1fx1, | ||
amrex::MultiFab * | Q1fx2, | ||
amrex::MultiFab * | Q1fx3, | ||
amrex::MultiFab * | Q2fx3, | ||
amrex::MultiFab * | Diss, | ||
const amrex::Geometry | geom, | ||
const SolverChoice & | solverChoice, | ||
std::unique_ptr< ABLMost > & | most, | ||
const amrex::Gpu::DeviceVector< amrex::BCRec > & | domain_bcs_type_d, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_nd, | ||
std::unique_ptr< amrex::MultiFab > & | ax, | ||
std::unique_ptr< amrex::MultiFab > & | ay, | ||
std::unique_ptr< amrex::MultiFab > & | az, | ||
std::unique_ptr< amrex::MultiFab > & | dJ_old, | ||
std::unique_ptr< amrex::MultiFab > & | dJ_new, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_m, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_u, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_v, | ||
amrex::YAFluxRegister * | fr_as_crse, | ||
amrex::YAFluxRegister * | fr_as_fine | ||
) |
Function for computing the slow RHS for the evolution equations for the scalars other than density or potential temperature
void erf_slow_rhs_pre | ( | int | level, |
int | finest_level, | ||
int | nrk, | ||
amrex::Real | dt, | ||
amrex::Vector< amrex::MultiFab > & | S_rhs, | ||
amrex::Vector< amrex::MultiFab > & | S_old, | ||
amrex::Vector< amrex::MultiFab > & | S_data, | ||
const amrex::MultiFab & | S_prim, | ||
amrex::Vector< amrex::MultiFab > & | S_scratch, | ||
const amrex::MultiFab & | xvel, | ||
const amrex::MultiFab & | yvel, | ||
const amrex::MultiFab & | zvel, | ||
std::unique_ptr< amrex::MultiFab > & | z_t, | ||
amrex::MultiFab & | Omega, | ||
const amrex::MultiFab & | cc_src, | ||
const amrex::MultiFab & | xmom_src, | ||
const amrex::MultiFab & | ymom_src, | ||
const amrex::MultiFab & | zmom_src, | ||
amrex::MultiFab * | Tau11, | ||
amrex::MultiFab * | Tau22, | ||
amrex::MultiFab * | Tau33, | ||
amrex::MultiFab * | Tau12, | ||
amrex::MultiFab * | Tau13, | ||
amrex::MultiFab * | Tau21, | ||
amrex::MultiFab * | Tau23, | ||
amrex::MultiFab * | Tau31, | ||
amrex::MultiFab * | Tau32, | ||
amrex::MultiFab * | SmnSmn, | ||
amrex::MultiFab * | eddyDiffs, | ||
amrex::MultiFab * | Hfx1, | ||
amrex::MultiFab * | Hfx2, | ||
amrex::MultiFab * | Hfx3, | ||
amrex::MultiFab * | Q1fx1, | ||
amrex::MultiFab * | Q1fx2, | ||
amrex::MultiFab * | Q1fx3, | ||
amrex::MultiFab * | Q2fx3, | ||
amrex::MultiFab * | Diss, | ||
const amrex::Geometry | geom, | ||
const SolverChoice & | solverChoice, | ||
std::unique_ptr< ABLMost > & | most, | ||
const amrex::Gpu::DeviceVector< amrex::BCRec > & | domain_bcs_type_d, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_nd, | ||
std::unique_ptr< amrex::MultiFab > & | ax, | ||
std::unique_ptr< amrex::MultiFab > & | ay, | ||
std::unique_ptr< amrex::MultiFab > & | az, | ||
std::unique_ptr< amrex::MultiFab > & | dJ, | ||
const amrex::MultiFab * | p0, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_m, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_u, | ||
std::unique_ptr< amrex::MultiFab > & | mapfac_v, | ||
amrex::YAFluxRegister * | fr_as_crse, | ||
amrex::YAFluxRegister * | fr_as_fine | ||
) |
Function for computing the slow RHS for the evolution equations for the density, potential temperature and momentum.