ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_InitCustomPert_AnelasticWallDiffusion.H
Go to the documentation of this file.
1 // Stage 0 manufactured state for the six-wall anelastic chamber fixtures.
2 // The perturbation is written as rho*theta so the existing initialization
3 // wrapper can add it to the conserved state without changing density.
4 ParmParse pp_prob("prob");
5 int axis = 0;
6 Real theta_lo = 300.0;
7 Real theta_hi = 301.0;
8 pp_prob.query("axis", axis);
9 pp_prob.query("theta_lo", theta_lo);
10 pp_prob.query("theta_hi", theta_hi);
11 
12 const Real problo_axis = geomdata.ProbLo(axis);
13 const Real dx_axis = geomdata.CellSize(axis);
14 const Real length = geomdata.ProbHi(axis) - geomdata.ProbLo(axis);
15 
16 ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept
17 {
18  const int index = (axis == 0) ? i : ((axis == 1) ? j : k);
19  const Real coordinate = problo_axis + (static_cast<Real>(index) + Real(0.5)) * dx_axis;
20  const Real theta = theta_lo + (theta_hi - theta_lo) * (coordinate - problo_axis) / length;
21  const Real rho = state(i,j,k,Rho_comp);
22  state_pert(i,j,k,RhoTheta_comp) = rho * theta - state(i,j,k,RhoTheta_comp);
23 });
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
const Real dx_axis
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:13
ParmParse pp_prob("prob")
const Real length
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:14
int axis
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:5
ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const int index=(axis==0) ? i :((axis==1) ? j :k);const Real coordinate=problo_axis+(static_cast< Real >(index)+Real(0.5)) *dx_axis;const Real theta=theta_lo+(theta_hi - theta_lo) *(coordinate - problo_axis)/length;const Real rho=state(i, j, k, Rho_comp);state_pert(i, j, k, RhoTheta_comp)=rho *theta - state(i, j, k, RhoTheta_comp);})
Real theta_hi
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:7
const Real problo_axis
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:12
Real theta_lo
Definition: ERF_InitCustomPert_AnelasticWallDiffusion.H:6
state_pert(i, j, k, RhoTheta_comp)
rho
Definition: ERF_InitCustomPert_Bubble.H:107
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ theta
Definition: ERF_SLM.H:20