ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <AMReX.H>
#include <AMReX_MultiFab.H>
#include <AMReX_BCRec.H>
#include <ERF_DataStruct.H>
#include <ERF_IndexDefines.H>
#include <ERF_ABLMost.H>
#include <ERF_FillPatcher.H>
Go to the source code of this file.
Functions | |
void | ChopGrids2D (amrex::BoxArray &ba, const amrex::Box &domain, int target_size) |
amrex::BoxArray | ERFPostProcessBaseGrids (const amrex::Box &domain, bool decompose_in_z) |
void | make_J (const amrex::Geometry &geom, amrex::MultiFab &z_phys_nd, amrex::MultiFab &detJ_cc) |
void | make_areas (const amrex::Geometry &geom, amrex::MultiFab &z_phys_nd, amrex::MultiFab &ax, amrex::MultiFab &ay, amrex::MultiFab &az) |
void | make_zcc (const amrex::Geometry &geom, amrex::MultiFab &z_phys_nd, amrex::MultiFab &z_phys_cc) |
void | MomentumToVelocity (amrex::MultiFab &xvel_out, amrex::MultiFab &yvel_out, amrex::MultiFab &zvel_out, const amrex::MultiFab &cons_in, const amrex::MultiFab &xmom_in, const amrex::MultiFab &ymom_in, const amrex::MultiFab &zmom_in, const amrex::Box &domain, const amrex::Vector< amrex::BCRec > &domain_bcs_type_h) |
void | VelocityToMomentum (const amrex::MultiFab &xvel_in, const amrex::IntVect &xvel_ngrow, const amrex::MultiFab &yvel_in, const amrex::IntVect &yvel_ngrow, const amrex::MultiFab &zvel_in, const amrex::IntVect &zvel_ngrow, const amrex::MultiFab &cons_in, amrex::MultiFab &xmom_out, amrex::MultiFab &ymom_out, amrex::MultiFab &zmom_out, const amrex::Box &domain, const amrex::Vector< amrex::BCRec > &domain_bcs_type_h) |
void | compute_interior_ghost_bxs_xy (const amrex::Box &bx, const amrex::Box &domain, const int &width, const int &set_width, amrex::Box &bx_xlo, amrex::Box &bx_xhi, amrex::Box &bx_ylo, amrex::Box &bx_yhi, const amrex::IntVect &ng_vect=amrex::IntVect(0, 0, 0), const bool get_int_ng=false) |
void | realbdy_compute_interior_ghost_rhs (const amrex::Real &bdy_time_interval, const amrex::Real &start_bdy_time, const amrex::Real &time, const amrex::Real &delta_t, int width, int set_width, const amrex::Geometry &geom, amrex::Vector< amrex::MultiFab > &S_rhs, amrex::Vector< amrex::MultiFab > &S_old_data, amrex::Vector< amrex::MultiFab > &S_cur_data, amrex::Vector< amrex::Vector< amrex::FArrayBox >> &bdy_data_xlo, amrex::Vector< amrex::Vector< amrex::FArrayBox >> &bdy_data_xhi, amrex::Vector< amrex::Vector< amrex::FArrayBox >> &bdy_data_ylo, amrex::Vector< amrex::Vector< amrex::FArrayBox >> &bdy_data_yhi) |
void | fine_compute_interior_ghost_rhs (const amrex::Real &time, const amrex::Real &delta_t, const int &width, const int &set_width, const amrex::Geometry &geom, ERFFillPatcher *FPr_c, ERFFillPatcher *FPr_u, ERFFillPatcher *FPr_v, ERFFillPatcher *FPr_w, amrex::Vector< amrex::BCRec > &domain_bcs_type, amrex::Vector< amrex::MultiFab > &S_rhs_f, amrex::Vector< amrex::MultiFab > &S_data_f) |
void | Time_Avg_Vel_atCC (const amrex::Real &dt, amrex::Real &t_avg_cnt, amrex::MultiFab *vel_t_avg, amrex::MultiFab &xvel, amrex::MultiFab &yvel, amrex::MultiFab &zvel) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void | realbdy_set_rhs_in_spec_region (const amrex::Real &dt, const int &icomp, const int &num_var, const int &width, const int &set_width, const amrex::Dim3 &dom_lo, const amrex::Dim3 &dom_hi, const amrex::Box &bx_xlo, const amrex::Box &bx_xhi, const amrex::Box &bx_ylo, const amrex::Box &bx_yhi, const amrex::Array4< const amrex::Real > &arr_xlo, const amrex::Array4< const amrex::Real > &arr_xhi, const amrex::Array4< const amrex::Real > &arr_ylo, const amrex::Array4< const amrex::Real > &arr_yhi, const amrex::Array4< const amrex::Real > &data_arr, const amrex::Array4< amrex::Real > &rhs_arr) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void | realbdy_compute_laplacian_relaxation (const int &icomp, const int &num_var, const int &width, const int &set_width, const amrex::Dim3 &dom_lo, const amrex::Dim3 &dom_hi, const amrex::Real &F1, const amrex::Real &F2, const amrex::Box &bx_xlo, const amrex::Box &bx_xhi, const amrex::Box &bx_ylo, const amrex::Box &bx_yhi, const amrex::Array4< const amrex::Real > &arr_xlo, const amrex::Array4< const amrex::Real > &arr_xhi, const amrex::Array4< const amrex::Real > &arr_ylo, const amrex::Array4< const amrex::Real > &arr_yhi, const amrex::Array4< const amrex::Real > &data_arr, const amrex::Array4< amrex::Real > &rhs_arr) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void | ApplyMask (amrex::MultiFab &dst, const amrex::iMultiFab &imask, const int nghost=0) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void | ApplyInvertedMask (amrex::MultiFab &dst, const amrex::iMultiFab &imask, const int nghost=0) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void ApplyInvertedMask | ( | amrex::MultiFab & | dst, |
const amrex::iMultiFab & | imask, | ||
const int | nghost = 0 |
||
) |
Referenced by add_thin_body_sources(), and ERF::project_velocities_tb().
AMREX_GPU_HOST AMREX_FORCE_INLINE void ApplyMask | ( | amrex::MultiFab & | dst, |
const amrex::iMultiFab & | imask, | ||
const int | nghost = 0 |
||
) |
Referenced by ERF::FillIntermediatePatch(), and ERF::project_velocities_tb().
void ChopGrids2D | ( | amrex::BoxArray & | ba, |
const amrex::Box & | domain, | ||
int | target_size | ||
) |
void compute_interior_ghost_bxs_xy | ( | const amrex::Box & | bx, |
const amrex::Box & | domain, | ||
const int & | width, | ||
const int & | set_width, | ||
amrex::Box & | bx_xlo, | ||
amrex::Box & | bx_xhi, | ||
amrex::Box & | bx_ylo, | ||
amrex::Box & | bx_yhi, | ||
const amrex::IntVect & | ng_vect = amrex::IntVect(0, 0, 0) , |
||
const bool | get_int_ng = false |
||
) |
amrex::BoxArray ERFPostProcessBaseGrids | ( | const amrex::Box & | domain, |
bool | decompose_in_z | ||
) |
void fine_compute_interior_ghost_rhs | ( | const amrex::Real & | time, |
const amrex::Real & | delta_t, | ||
const int & | width, | ||
const int & | set_width, | ||
const amrex::Geometry & | geom, | ||
ERFFillPatcher * | FPr_c, | ||
ERFFillPatcher * | FPr_u, | ||
ERFFillPatcher * | FPr_v, | ||
ERFFillPatcher * | FPr_w, | ||
amrex::Vector< amrex::BCRec > & | domain_bcs_type, | ||
amrex::Vector< amrex::MultiFab > & | S_rhs_f, | ||
amrex::Vector< amrex::MultiFab > & | S_data_f | ||
) |
void make_areas | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | z_phys_nd, | ||
amrex::MultiFab & | ax, | ||
amrex::MultiFab & | ay, | ||
amrex::MultiFab & | az | ||
) |
void make_J | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | z_phys_nd, | ||
amrex::MultiFab & | detJ_cc | ||
) |
void make_zcc | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | z_phys_nd, | ||
amrex::MultiFab & | z_phys_cc | ||
) |
void MomentumToVelocity | ( | amrex::MultiFab & | xvel_out, |
amrex::MultiFab & | yvel_out, | ||
amrex::MultiFab & | zvel_out, | ||
const amrex::MultiFab & | cons_in, | ||
const amrex::MultiFab & | xmom_in, | ||
const amrex::MultiFab & | ymom_in, | ||
const amrex::MultiFab & | zmom_in, | ||
const amrex::Box & | domain, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type_h | ||
) |
void realbdy_compute_interior_ghost_rhs | ( | const amrex::Real & | bdy_time_interval, |
const amrex::Real & | start_bdy_time, | ||
const amrex::Real & | time, | ||
const amrex::Real & | delta_t, | ||
int | width, | ||
int | set_width, | ||
const amrex::Geometry & | geom, | ||
amrex::Vector< amrex::MultiFab > & | S_rhs, | ||
amrex::Vector< amrex::MultiFab > & | S_old_data, | ||
amrex::Vector< amrex::MultiFab > & | S_cur_data, | ||
amrex::Vector< amrex::Vector< amrex::FArrayBox >> & | bdy_data_xlo, | ||
amrex::Vector< amrex::Vector< amrex::FArrayBox >> & | bdy_data_xhi, | ||
amrex::Vector< amrex::Vector< amrex::FArrayBox >> & | bdy_data_ylo, | ||
amrex::Vector< amrex::Vector< amrex::FArrayBox >> & | bdy_data_yhi | ||
) |
AMREX_GPU_HOST AMREX_FORCE_INLINE void realbdy_compute_laplacian_relaxation | ( | const int & | icomp, |
const int & | num_var, | ||
const int & | width, | ||
const int & | set_width, | ||
const amrex::Dim3 & | dom_lo, | ||
const amrex::Dim3 & | dom_hi, | ||
const amrex::Real & | F1, | ||
const amrex::Real & | F2, | ||
const amrex::Box & | bx_xlo, | ||
const amrex::Box & | bx_xhi, | ||
const amrex::Box & | bx_ylo, | ||
const amrex::Box & | bx_yhi, | ||
const amrex::Array4< const amrex::Real > & | arr_xlo, | ||
const amrex::Array4< const amrex::Real > & | arr_xhi, | ||
const amrex::Array4< const amrex::Real > & | arr_ylo, | ||
const amrex::Array4< const amrex::Real > & | arr_yhi, | ||
const amrex::Array4< const amrex::Real > & | data_arr, | ||
const amrex::Array4< amrex::Real > & | rhs_arr | ||
) |
Compute the Laplacian RHS in the relaxation zone
[in] | delta_t | time step |
[in] | icomp | component offset |
[in] | num_var | number of variables to loop |
[in] | width | width of wrf bdy file |
[in] | set_width | width the set region |
[in] | dom_lo | low bound of domain |
[in] | dom_hi | high bound of domain |
[in] | F1 | drift relaxation parameter |
[in] | F2 | Laplacian relaxation parameter |
[in] | bx_xlo | box for low x relaxation |
[in] | bx_xhi | box for high x relaxation |
[in] | bx_ylo | box for low y relaxation |
[in] | bx_yhi | box for high y relaxation |
[in] | arr_xlo | array for low x relaxation |
[in] | arr_xhi | array for high x relaxation |
[in] | arr_ylo | array for low y relaxation |
[in] | arr_yhi | array for high y relaxation |
[in] | data_arr | data array |
[out] | rhs_arr | RHS array |
Referenced by realbdy_compute_interior_ghost_rhs().
AMREX_GPU_HOST AMREX_FORCE_INLINE void realbdy_set_rhs_in_spec_region | ( | const amrex::Real & | dt, |
const int & | icomp, | ||
const int & | num_var, | ||
const int & | width, | ||
const int & | set_width, | ||
const amrex::Dim3 & | dom_lo, | ||
const amrex::Dim3 & | dom_hi, | ||
const amrex::Box & | bx_xlo, | ||
const amrex::Box & | bx_xhi, | ||
const amrex::Box & | bx_ylo, | ||
const amrex::Box & | bx_yhi, | ||
const amrex::Array4< const amrex::Real > & | arr_xlo, | ||
const amrex::Array4< const amrex::Real > & | arr_xhi, | ||
const amrex::Array4< const amrex::Real > & | arr_ylo, | ||
const amrex::Array4< const amrex::Real > & | arr_yhi, | ||
const amrex::Array4< const amrex::Real > & | data_arr, | ||
const amrex::Array4< amrex::Real > & | rhs_arr | ||
) |
Zero RHS in the set region
[in] | icomp | component offset |
[in] | num_var | number of variables to loop |
[in] | bx_xlo | box for low x relaxation |
[in] | bx_xhi | box for high x relaxation |
[in] | bx_ylo | box for low y relaxation |
[in] | bx_yhi | box for high y relaxation |
[out] | rhs_arr | RHS array |
Referenced by realbdy_compute_interior_ghost_rhs().
void Time_Avg_Vel_atCC | ( | const amrex::Real & | dt, |
amrex::Real & | t_avg_cnt, | ||
amrex::MultiFab * | vel_t_avg, | ||
amrex::MultiFab & | xvel, | ||
amrex::MultiFab & | yvel, | ||
amrex::MultiFab & | zvel | ||
) |
void VelocityToMomentum | ( | const amrex::MultiFab & | xvel_in, |
const amrex::IntVect & | xvel_ngrow, | ||
const amrex::MultiFab & | yvel_in, | ||
const amrex::IntVect & | yvel_ngrow, | ||
const amrex::MultiFab & | zvel_in, | ||
const amrex::IntVect & | zvel_ngrow, | ||
const amrex::MultiFab & | cons_in, | ||
amrex::MultiFab & | xmom_out, | ||
amrex::MultiFab & | ymom_out, | ||
amrex::MultiFab & | zmom_out, | ||
const amrex::Box & | domain, | ||
const amrex::Vector< amrex::BCRec > & | domain_bcs_type_h | ||
) |
Referenced by ERF::Advance(), ERF::advance_dycore(), ERF::AverageDownTo(), ERF::FillCoarsePatch(), and ERF::FillIntermediatePatch().