ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_SrcHeaders.H File Reference
#include <AMReX_MultiFab.H>
#include "ERF_DataStruct.H"
#include "ERF_InputSoundingData.H"
#include "ERF_TurbPertStruct.H"
Include dependency graph for ERF_SrcHeaders.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void make_buoyancy (amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, amrex::MultiFab &buoyancy, const amrex::Geometry geom, const SolverChoice &solverChoice, const amrex::MultiFab &base_state, const int n_qstate, const int anelastic)
 
void make_sources (int level, int nrk, amrex::Real dt, amrex::Real time, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, amrex::MultiFab &cc_source, std::unique_ptr< amrex::MultiFab > &z_phys_cc, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v, std::unique_ptr< amrex::MultiFab > &mapfac_m, const amrex::Real *dptr_rhotheta_src, const amrex::Real *dptr_rhoqt_src, const amrex::Real *dptr_wbar_sub, const amrex::Vector< amrex::Real * > d_rayleigh_ptrs_at_lev, InputSoundingData &input_sounding_data, TurbulentPerturbation &turbPert)
 
void make_mom_sources (int level, int nrk, amrex::Real dt, amrex::Real time, amrex::Vector< amrex::MultiFab > &S_data, const amrex::MultiFab &S_prim, std::unique_ptr< amrex::MultiFab > &z_phys_nd, std::unique_ptr< amrex::MultiFab > &z_phys_cc, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &wvel, amrex::MultiFab &xmom_source, amrex::MultiFab &ymom_source, amrex::MultiFab &zmom_source, const amrex::MultiFab &base_state, amrex::MultiFab *forest_drag, amrex::MultiFab *terrain_blank, const amrex::Geometry geom, const SolverChoice &solverChoice, std::unique_ptr< amrex::MultiFab > &mapfac_m, std::unique_ptr< amrex::MultiFab > &mapfac_u, std::unique_ptr< amrex::MultiFab > &mapfac_v, const amrex::Real *dptr_rhotheta_src, const amrex::Real *dptr_rhoqt_src, const amrex::Real *dptr_wbar_sub, const amrex::Vector< amrex::Real * > d_rayleigh_ptrs_at_lev, const amrex::Vector< amrex::Real * > d_sponge_ptrs_at_lev, InputSoundingData &input_sounding_data, const int n_qstate)
 
void add_thin_body_sources (amrex::MultiFab &xmom_source, amrex::MultiFab &ymom_source, amrex::MultiFab &zmom_source, std::unique_ptr< amrex::iMultiFab > &xflux_imask_lev, std::unique_ptr< amrex::iMultiFab > &yflux_imask_lev, std::unique_ptr< amrex::iMultiFab > &zflux_imask_lev, std::unique_ptr< amrex::MultiFab > &thin_xforce_lev, std::unique_ptr< amrex::MultiFab > &thin_yforce_lev, std::unique_ptr< amrex::MultiFab > &thin_zforce_lev)
 
void ApplySpongeZoneBCsForCC (const SpongeChoice &spongeChoice, const amrex::Geometry geom, const amrex::Box &bx, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< const amrex::Real > &cell_data)
 
void ApplySpongeZoneBCsForMom (const SpongeChoice &spongeChoice, const amrex::Geometry geom, const amrex::Box &tbx, const amrex::Box &tby, const amrex::Box &tbz, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< amrex::Real > &rho_w_rhs, const amrex::Array4< const amrex::Real > &rho_u, const amrex::Array4< const amrex::Real > &rho_v, const amrex::Array4< const amrex::Real > &rho_w)
 
void ApplySpongeZoneBCsForMom_ReadFromFile (const SpongeChoice &spongeChoice, const amrex::Geometry geom, const amrex::Box &tbx, const amrex::Box &tby, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< const amrex::Real > &rho_u, const amrex::Array4< const amrex::Real > &rho_v, const amrex::Vector< amrex::Real * > d_sponge_ptrs_at_lev)
 

Function Documentation

◆ add_thin_body_sources()

void add_thin_body_sources ( amrex::MultiFab &  xmom_source,
amrex::MultiFab &  ymom_source,
amrex::MultiFab &  zmom_source,
std::unique_ptr< amrex::iMultiFab > &  xflux_imask_lev,
std::unique_ptr< amrex::iMultiFab > &  yflux_imask_lev,
std::unique_ptr< amrex::iMultiFab > &  zflux_imask_lev,
std::unique_ptr< amrex::MultiFab > &  thin_xforce_lev,
std::unique_ptr< amrex::MultiFab > &  thin_yforce_lev,
std::unique_ptr< amrex::MultiFab > &  thin_zforce_lev 
)

◆ ApplySpongeZoneBCsForCC()

void ApplySpongeZoneBCsForCC ( const SpongeChoice spongeChoice,
const amrex::Geometry  geom,
const amrex::Box &  bx,
const amrex::Array4< amrex::Real > &  cell_rhs,
const amrex::Array4< const amrex::Real > &  cell_data 
)

◆ ApplySpongeZoneBCsForMom()

void ApplySpongeZoneBCsForMom ( const SpongeChoice spongeChoice,
const amrex::Geometry  geom,
const amrex::Box &  tbx,
const amrex::Box &  tby,
const amrex::Box &  tbz,
const amrex::Array4< amrex::Real > &  rho_u_rhs,
const amrex::Array4< amrex::Real > &  rho_v_rhs,
const amrex::Array4< amrex::Real > &  rho_w_rhs,
const amrex::Array4< const amrex::Real > &  rho_u,
const amrex::Array4< const amrex::Real > &  rho_v,
const amrex::Array4< const amrex::Real > &  rho_w 
)

◆ ApplySpongeZoneBCsForMom_ReadFromFile()

void ApplySpongeZoneBCsForMom_ReadFromFile ( const SpongeChoice spongeChoice,
const amrex::Geometry  geom,
const amrex::Box &  tbx,
const amrex::Box &  tby,
const amrex::Array4< const amrex::Real > &  cell_data,
const amrex::Array4< amrex::Real > &  rho_u_rhs,
const amrex::Array4< amrex::Real > &  rho_v_rhs,
const amrex::Array4< const amrex::Real > &  rho_u,
const amrex::Array4< const amrex::Real > &  rho_v,
const amrex::Vector< amrex::Real * >  d_sponge_ptrs_at_lev 
)

◆ make_buoyancy()

void make_buoyancy ( amrex::Vector< amrex::MultiFab > &  S_data,
const amrex::MultiFab &  S_prim,
amrex::MultiFab &  buoyancy,
const amrex::Geometry  geom,
const SolverChoice solverChoice,
const amrex::MultiFab &  base_state,
const int  n_qstate,
const int  anelastic 
)

Function for computing the buoyancy term to be used in the evolution equation for the z-component of momentum in the slow integrator. There are three options for how buoyancy is computed (two are the same in the absence of moisture).

◆ make_mom_sources()

void make_mom_sources ( int  level,
int  nrk,
amrex::Real  dt,
amrex::Real  time,
amrex::Vector< amrex::MultiFab > &  S_data,
const amrex::MultiFab &  S_prim,
std::unique_ptr< amrex::MultiFab > &  z_phys_nd,
std::unique_ptr< amrex::MultiFab > &  z_phys_cc,
const amrex::MultiFab &  xvel,
const amrex::MultiFab &  yvel,
const amrex::MultiFab &  wvel,
amrex::MultiFab &  xmom_source,
amrex::MultiFab &  ymom_source,
amrex::MultiFab &  zmom_source,
const amrex::MultiFab &  base_state,
amrex::MultiFab *  forest_drag,
amrex::MultiFab *  terrain_blank,
const amrex::Geometry  geom,
const SolverChoice solverChoice,
std::unique_ptr< amrex::MultiFab > &  mapfac_m,
std::unique_ptr< amrex::MultiFab > &  mapfac_u,
std::unique_ptr< amrex::MultiFab > &  mapfac_v,
const amrex::Real *  dptr_rhotheta_src,
const amrex::Real *  dptr_rhoqt_src,
const amrex::Real *  dptr_wbar_sub,
const amrex::Vector< amrex::Real * >  d_rayleigh_ptrs_at_lev,
const amrex::Vector< amrex::Real * >  d_sponge_ptrs_at_lev,
InputSoundingData input_sounding_data,
const int  n_qstate 
)

◆ make_sources()

void make_sources ( int  level,
int  nrk,
amrex::Real  dt,
amrex::Real  time,
amrex::Vector< amrex::MultiFab > &  S_data,
const amrex::MultiFab &  S_prim,
amrex::MultiFab &  cc_source,
std::unique_ptr< amrex::MultiFab > &  z_phys_cc,
const amrex::Geometry  geom,
const SolverChoice solverChoice,
std::unique_ptr< amrex::MultiFab > &  mapfac_u,
std::unique_ptr< amrex::MultiFab > &  mapfac_v,
std::unique_ptr< amrex::MultiFab > &  mapfac_m,
const amrex::Real *  dptr_rhotheta_src,
const amrex::Real *  dptr_rhoqt_src,
const amrex::Real *  dptr_wbar_sub,
const amrex::Vector< amrex::Real * >  d_rayleigh_ptrs_at_lev,
InputSoundingData input_sounding_data,
TurbulentPerturbation turbPert 
)