|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
Go to the source code of this file.
Functions | |
| ParmParse | pp_for_pert_vels ("prob") |
| pp_for_pert_vels | query ("U_0", U_0) |
| pp_for_pert_vels | query ("V_0", V_0) |
| pp_for_pert_vels | query ("U_0_Pert_Mag", U_0_Pert_Mag) |
| pp_for_pert_vels | query ("V_0_Pert_Mag", V_0_Pert_Mag) |
| pp_for_pert_vels | query ("W_0_Pert_Mag", W_0_Pert_Mag) |
| pp_for_pert_vels | query ("pert_deltaU", pert_deltaU) |
| pp_for_pert_vels | query ("pert_deltaV", pert_deltaV) |
| pp_for_pert_vels | query ("pert_periods_U", pert_periods_U) |
| pp_for_pert_vels | query ("pert_periods_V", pert_periods_V) |
| pp_for_pert_vels | query ("pert_ref_height", pert_ref_height) |
| ParallelForRNG (xbx, [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const Real *prob_lo=geomdata.ProbLo();const Real *dx=geomdata.CellSize();const Real z=use_terrain ? 0.25 *(z_nd(i, j, k)+z_nd(i, j, k+1)+z_nd(i, j+1, k)+z_nd(i, j+1, k+1)) :prob_lo[2]+(k+0.5) *dx[2];x_vel_pert(i, j, k)=0.0;if((z<=pert_ref_height) &&(U_0_Pert_Mag !=0.0)) { Real rand_double=amrex::Random(engine);Real x_vel_prime=(rand_double *2.0 - 1.0) *U_0_Pert_Mag;x_vel_pert(i, j, k)+=x_vel_prime;} }) | |
| ParallelForRNG (ybx, [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const Real *prob_lo=geomdata.ProbLo();const Real *dx=geomdata.CellSize();const Real x=prob_lo[0]+(i+0.5) *dx[0];const Real z=use_terrain ? 0.25 *(z_nd(i, j, k)+z_nd(i, j, k+1)+z_nd(i+1, j, k)+z_nd(i+1, j, k+1)) :prob_lo[2]+(k+0.5) *dx[2];y_vel_pert(i, j, k)=0.0;if((z<=pert_ref_height) &&(V_0_Pert_Mag !=0.0)) { Real rand_double=amrex::Random(engine);Real y_vel_prime=(rand_double *2.0 - 1.0) *V_0_Pert_Mag;y_vel_pert(i, j, k)+=y_vel_prime;} if(pert_deltaV !=0.0) { const Real xl=x - prob_lo[0];const Real zl=z/pert_ref_height;const Real damp=std::exp(-0.5 *zl *zl);y_vel_pert(i, j, k)+=vfac *damp *z *std::cos(bval *xl);} }) | |
| ParallelForRNG (zbx, [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const int dom_lo_z=geomdata.Domain().smallEnd()[2];const int dom_hi_z=geomdata.Domain().bigEnd()[2];if(k==dom_lo_z||k==dom_hi_z+1) { z_vel_pert(i, j, k)=0.0;} else if(W_0_Pert_Mag !=0.0) { Real rand_double=amrex::Random(engine);Real z_vel_prime=(rand_double *2.0 - 1.0) *W_0_Pert_Mag;z_vel_pert(i, j, k)=z_vel_prime;} }) | |
Variables | |
| Real | U_0 = 0.0 |
| Real | V_0 = 0.0 |
| Real | U_0_Pert_Mag = 0.0 |
| Real | V_0_Pert_Mag = 0.0 |
| Real | W_0_Pert_Mag = 0.0 |
| Real | pert_deltaU = 0.0 |
| Real | pert_deltaV = 0.0 |
| Real | pert_periods_U = 5.0 |
| Real | pert_periods_V = 5.0 |
| Real | pert_ref_height = 1.0 |
| const Real * | problo = geomdata.ProbLo() |
| const Real * | probhi = geomdata.ProbHi() |
| Real | bval = pert_periods_V * 2.0 * PI / (probhi[0] - problo[0]) |
| Real | vfac = pert_deltaV * std::exp(0.5) / pert_ref_height |
| const bool | use_terrain = (SolverChoice::terrain_type != TerrainType::None) |
| const auto | dx = geomdata.CellSize() |
| amrex::GpuArray< Real, AMREX_SPACEDIM > | dxInv = 1. / dx[0] |
| ParallelForRNG | ( | xbx | , |
| [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const Real *prob_lo=geomdata.ProbLo();const Real *dx=geomdata.CellSize();const Real z=use_terrain ? 0.25 *(z_nd(i, j, k)+z_nd(i, j, k+1)+z_nd(i, j+1, k)+z_nd(i, j+1, k+1)) :prob_lo[2]+(k+0.5) *dx[2];x_vel_pert(i, j, k)=0.0;if((z<=pert_ref_height) &&(U_0_Pert_Mag !=0.0)) { Real rand_double=amrex::Random(engine);Real x_vel_prime=(rand_double *2.0 - 1.0) *U_0_Pert_Mag;x_vel_pert(i, j, k)+=x_vel_prime;} } | |||
| ) |
| ParallelForRNG | ( | ybx | , |
| [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const Real *prob_lo=geomdata.ProbLo();const Real *dx=geomdata.CellSize();const Real x=prob_lo[0]+(i+0.5) *dx[0];const Real z=use_terrain ? 0.25 *(z_nd(i, j, k)+z_nd(i, j, k+1)+z_nd(i+1, j, k)+z_nd(i+1, j, k+1)) :prob_lo[2]+(k+0.5) *dx[2];y_vel_pert(i, j, k)=0.0;if((z<=pert_ref_height) &&(V_0_Pert_Mag !=0.0)) { Real rand_double=amrex::Random(engine);Real y_vel_prime=(rand_double *2.0 - 1.0) *V_0_Pert_Mag;y_vel_pert(i, j, k)+=y_vel_prime;} if(pert_deltaV !=0.0) { const Real xl=x - prob_lo[0];const Real zl=z/pert_ref_height;const Real damp=std::exp(-0.5 *zl *zl);y_vel_pert(i, j, k)+=vfac *damp *z *std::cos(bval *xl);} } | |||
| ) |
| ParallelForRNG | ( | zbx | , |
| [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine &engine) noexcept { const int dom_lo_z=geomdata.Domain().smallEnd()[2];const int dom_hi_z=geomdata.Domain().bigEnd()[2];if(k==dom_lo_z||k==dom_hi_z+1) { z_vel_pert(i, j, k)=0.0;} else if(W_0_Pert_Mag !=0.0) { Real rand_double=amrex::Random(engine);Real z_vel_prime=(rand_double *2.0 - 1.0) *W_0_Pert_Mag;z_vel_pert(i, j, k)=z_vel_prime;} } | |||
| ) |
| ParmParse pp_for_pert_vels | ( | "prob" | ) |
| pp_for_pert_vels query | ( | "pert_deltaU" | , |
| pert_deltaU | |||
| ) |
| pp_for_pert_vels query | ( | "pert_deltaV" | , |
| pert_deltaV | |||
| ) |
| pp_for_pert_vels query | ( | "pert_periods_U" | , |
| pert_periods_U | |||
| ) |
| pp_for_pert_vels query | ( | "pert_periods_V" | , |
| pert_periods_V | |||
| ) |
| pp_for_pert_vels query | ( | "pert_ref_height" | , |
| pert_ref_height | |||
| ) |
| pp_for_pert_vels query | ( | "U_0" | , |
| U_0 | |||
| ) |
| pp_for_pert_vels query | ( | "U_0_Pert_Mag" | , |
| U_0_Pert_Mag | |||
| ) |
| pp_for_pert_vels query | ( | "V_0" | , |
| V_0 | |||
| ) |
| pp_for_pert_vels query | ( | "V_0_Pert_Mag" | , |
| V_0_Pert_Mag | |||
| ) |
| pp_for_pert_vels query | ( | "W_0_Pert_Mag" | , |
| W_0_Pert_Mag | |||
| ) |
| Real bval = pert_periods_V * 2.0 * PI / (probhi[0] - problo[0]) |
Referenced by ParallelForRNG().
| const auto dx = geomdata.CellSize() |
Referenced by ParallelForRNG().
| dxInv[2] = 1. / dx[0] |
| Real pert_deltaU = 0.0 |
| Real pert_deltaV = 0.0 |
Referenced by ParallelForRNG().
| Real pert_periods_U = 5.0 |
| Real pert_periods_V = 5.0 |
| Real pert_ref_height = 1.0 |
Referenced by ParallelForRNG().
| const Real* probhi = geomdata.ProbHi() |
| const Real* problo = geomdata.ProbLo() |
| Real U_0 = 0.0 |
| Real U_0_Pert_Mag = 0.0 |
Referenced by ParallelForRNG().
| const bool use_terrain = (SolverChoice::terrain_type != TerrainType::None) |
Referenced by erf_init_dens_hse(), ParallelForRNG(), and thinbody_wall_dist().
| Real V_0 = 0.0 |
| Real V_0_Pert_Mag = 0.0 |
Referenced by ParallelForRNG().
| Real vfac = pert_deltaV * std::exp(0.5) / pert_ref_height |
Referenced by MOSTAverage::compute_plane_averages(), MOSTAverage::compute_region_averages(), and ParallelForRNG().
| Real W_0_Pert_Mag = 0.0 |
Referenced by ParallelForRNG().