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::Array4<amrex::Real const> const& z_sfc_nd,
10  amrex::GeometryData const& geomdata,
11  amrex::Array4<amrex::Real const> const& mf_m,
12  const SolverChoice& sc,
13  const int lev) override;
14 
16  const amrex::Box& xbx,
17  const amrex::Box& ybx,
18  const amrex::Box& zbx,
19  amrex::Array4<amrex::Real > const& x_vel_pert,
20  amrex::Array4<amrex::Real > const& y_vel_pert,
21  amrex::Array4<amrex::Real > const& z_vel_pert,
22  amrex::Array4<amrex::Real const> const& z_nd,
23  amrex::Array4<amrex::Real const> const& z_sfc_nd,
24  amrex::GeometryData const& geomdata,
25  amrex::Array4<amrex::Real const> const& mf_u,
26  amrex::Array4<amrex::Real const> const& mf_v,
27  const SolverChoice& sc,
28  const int lev) override;
29 
30 AMREX_GPU_DEVICE
31 static
38 {
39  // Evaluate Gaussian function
40  const amrex::Real r2 = ((x-xc)*(x-xc) + (y-yc)*(y-yc)) / (R*R);
41  return beta * std::exp(-r2/(two*sigma*sigma));
42 }
43 
44 #ifdef ERF_USE_TERRAIN_VELOCITY
45 /**
46  * Compute the terrain-induced velocity at a given time.
47  *
48  * @param[in] time Current simulation time.
49  * @return Terrain-induced velocity.
50  */
52 Problem::compute_terrain_velocity (const double time)
53 {
54  amrex::Real U = amrex::Real(10.0);
56  return U*cos(omega*time);
57 }
58 #endif
#define M_PI
Definition: ERF_HurricaneDiagnostics.cpp:27
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::Array4< amrex::Real const > const &z_sfc_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
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::Array4< amrex::Real const > const &z_sfc_nd, amrex::GeometryData const &geomdata, amrex::Array4< amrex::Real const > const &mf_m, 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:33
const Real yc
Definition: ERF_InitCustomPert_ABL.H:55
const Real xc
Definition: ERF_InitCustomPert_ABL.H:54
amrex::Real sigma
Definition: ERF_InitCustomPert_DataAssimilation_ISV.H:11
constexpr amrex::Real two
Definition: ERF_NumericalConstants.H:38
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ omega
Definition: ERF_Morrison.H:57
@ R
Definition: ERF_IndexDefines.H:170
@ U
Definition: ERF_IndexDefines.H:166
@ beta
Definition: ERF_SLM.H:152
Definition: ERF_DataStruct.H:715