ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_InitCustomPertVels_MovingTerrain.H File Reference

Go to the source code of this file.

Functions

ParmParse pp_prob ("prob")
 
pp_prob query ("Ampl", Ampl)
 
pp_prob get ("wavelength", wavelength)
 
 ParallelFor (xbx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const auto prob_lo=geomdata.ProbLo();const auto dx=geomdata.CellSize();const Real x=prob_lo[0]+i *dx[0];Real z=0.25 *(z_nd(i, j, k)+z_nd(i, j+1, k)+z_nd(i, j, k+1)+z_nd(i, j+1, k+1));Real z_base=Ampl *std::sin(kp *x);z -=z_base;Real fac=std::cosh(kp *(z - H))/std::sinh(kp *H);x_vel_pert(i, j, k)=-Ampl *omega *fac *std::sin(kp *x);})
 
 ParallelFor (zbx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const auto dx=geomdata.CellSize();Real x=(i+0.5) *dx[0];Real z=0.25 *(z_nd(i, j, k)+z_nd(i+1, j, k)+z_nd(i, j+1, k)+z_nd(i+1, j+1, k));Real z_base=Ampl *std::sin(kp *x);z -=z_base;Real fac=std::sinh(kp *(z - H))/std::sinh(kp *H);z_vel_pert(i, j, k)=Ampl *omega *fac *std::cos(kp *x);})
 

Variables

Real Ampl = 0.
 
Real wavelength = 1.0
 
Real H = geomdata.ProbHi()[2]
 
Real kp = 2.0 * PI / wavelength
 
Real g = CONST_GRAV
 
Real omega = std::sqrt(g * kp)
 

Function Documentation

◆ get()

pp_prob get ( "wavelength"  ,
wavelength   
)

◆ ParallelFor() [1/2]

ParallelFor ( xbx  ,
[=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const auto prob_lo=geomdata.ProbLo();const auto dx=geomdata.CellSize();const Real x=prob_lo[0]+i *dx[0];Real z=0.25 *(z_nd(i, j, k)+z_nd(i, j+1, k)+z_nd(i, j, k+1)+z_nd(i, j+1, k+1));Real z_base=Ampl *std::sin(kp *x);z -=z_base;Real fac=std::cosh(kp *(z - H))/std::sinh(kp *H);x_vel_pert(i, j, k)=-Ampl *omega *fac *std::sin(kp *x);}   
)

◆ ParallelFor() [2/2]

ParallelFor ( zbx  ,
[=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const auto dx=geomdata.CellSize();Real x=(i+0.5) *dx[0];Real z=0.25 *(z_nd(i, j, k)+z_nd(i+1, j, k)+z_nd(i, j+1, k)+z_nd(i+1, j+1, k));Real z_base=Ampl *std::sin(kp *x);z -=z_base;Real fac=std::sinh(kp *(z - H))/std::sinh(kp *H);z_vel_pert(i, j, k)=Ampl *omega *fac *std::cos(kp *x);}   
)

◆ pp_prob()

ParmParse pp_prob ( "prob"  )

◆ query()

pp_prob query ( "Ampl"  ,
Ampl   
)

Variable Documentation

◆ Ampl

Real Ampl = 0.

Referenced by ParallelFor().

◆ g

◆ H

Real H = geomdata.ProbHi()[2]

Referenced by ParallelFor().

◆ kp

Real kp = 2.0 * PI / wavelength

Referenced by ParallelFor().

◆ omega

Real omega = std::sqrt(g * kp)

Referenced by ParallelFor().

◆ wavelength

Real wavelength = 1.0