ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_InitCustomPert.H
Go to the documentation of this file.
2  const amrex::Box& bx,
3  amrex::Array4<amrex::Real const> const& state,
4  amrex::Array4<amrex::Real > const& state_pert,
5  amrex::Array4<amrex::Real > const& r_hse,
6  amrex::Array4<amrex::Real > const& p_hse,
7  amrex::Array4<amrex::Real const> const& z_nd,
8  amrex::Array4<amrex::Real const> const& z_cc,
9  amrex::GeometryData const& geomdata,
10  amrex::Array4<amrex::Real const> const& mf_m,
11  const SolverChoice& sc,
12  const int lev) override;
13 
15  const amrex::Box& xbx,
16  const amrex::Box& ybx,
17  const amrex::Box& zbx,
18  amrex::Array4<amrex::Real > const& x_vel_pert,
19  amrex::Array4<amrex::Real > const& y_vel_pert,
20  amrex::Array4<amrex::Real > const& z_vel_pert,
21  amrex::Array4<amrex::Real const> const& z_nd,
22  amrex::GeometryData const& geomdata,
23  amrex::Array4<amrex::Real const> const& mf_u,
24  amrex::Array4<amrex::Real const> const& mf_v,
25  const SolverChoice& sc,
26  const int lev) override;
27 
28 AMREX_GPU_DEVICE
29 static
36 {
37  // Evaluate Gaussian function
38  const amrex::Real r2 = ((x-xc)*(x-xc) + (y-yc)*(y-yc)) / (R*R);
39  return beta * std::exp(-r2/(2.*sigma*sigma));
40 }
41 
42 #ifdef ERF_USE_TERRAIN_VELOCITY
44 Problem::compute_terrain_velocity (const amrex::Real time)
45 {
46  amrex::Real U = 10.0;
47  amrex::Real omega = 2.0*M_PI*1000.0;
48  return U*cos(omega*time);
49 }
50 #endif
#define M_PI
Definition: ERF_HurricaneDiagnostics.H:16
void init_custom_pert(const amrex::Box &bx, amrex::Array4< amrex::Real const > const &state, amrex::Array4< amrex::Real > const &state_pert, amrex::Array4< amrex::Real > const &r_hse, amrex::Array4< amrex::Real > const &p_hse, amrex::Array4< amrex::Real const > const &z_nd, amrex::Array4< amrex::Real const > const &z_cc, amrex::GeometryData const &geomdata, amrex::Array4< amrex::Real const > const &mf_m, const SolverChoice &sc, const int lev) override
void init_custom_pert_vels(const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Box &zbx, amrex::Array4< amrex::Real > const &x_vel_pert, amrex::Array4< amrex::Real > const &y_vel_pert, amrex::Array4< amrex::Real > const &z_vel_pert, amrex::Array4< amrex::Real const > const &z_nd, amrex::GeometryData const &geomdata, amrex::Array4< amrex::Real const > const &mf_u, amrex::Array4< amrex::Real const > const &mf_v, const SolverChoice &sc, const int lev) override
static AMREX_GPU_DEVICE amrex::Real erf_vortex_Gaussian(amrex::Real x, amrex::Real y, amrex::Real xc, amrex::Real yc, amrex::Real R, amrex::Real beta, amrex::Real sigma)
Definition: ERF_InitCustomPert.H:31
amrex::Real R
Definition: ERF_InitCustomPert_IsentropicVortex.H:12
amrex::Real yc
Definition: ERF_InitCustomPert_IsentropicVortex.H:20
amrex::Real sigma
Definition: ERF_InitCustomPert_IsentropicVortex.H:11
amrex::Real beta
Definition: ERF_InitCustomPert_IsentropicVortex.H:10
amrex::Real xc
Definition: ERF_InitCustomPert_IsentropicVortex.H:19
const Box zbx
Definition: ERF_SetupDiff.H:9
const Box xbx
Definition: ERF_SetupDiff.H:7
const Box ybx
Definition: ERF_SetupDiff.H:8
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ omega
Definition: ERF_Morrison.H:53
@ U
Definition: ERF_IndexDefines.H:108
Definition: ERF_DataStruct.H:129