ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_TI_slow_headers.H File Reference
#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>
Include dependency graph for ERF_TI_slow_headers.H:
This graph shows which files directly or indirectly include this file:

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 *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, const amrex::MultiFab &cc_src, const amrex::MultiFab &xmom_src, const amrex::MultiFab &ymom_src, const amrex::MultiFab &zmom_src, const amrex::MultiFab *zmom_crse_rhs, 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, 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, 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)
 

Function Documentation

◆ erf_make_tau_terms()

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 *  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 
)

◆ erf_slow_rhs_inc()

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.

◆ erf_slow_rhs_post()

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

◆ erf_slow_rhs_pre()

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,
const amrex::MultiFab &  cc_src,
const amrex::MultiFab &  xmom_src,
const amrex::MultiFab &  ymom_src,
const amrex::MultiFab &  zmom_src,
const amrex::MultiFab *  zmom_crse_rhs,
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,
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,
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.