68 BL_PROFILE_REGION(
"erf_fast_rhs_N()");
70 Real beta_1 = 0.5 * (1.0 - beta_s);
71 Real beta_2 = 0.5 * (1.0 + beta_s);
76 const Real* dx = geom.CellSize();
77 const GpuArray<Real, AMREX_SPACEDIM> dxInv = geom.InvCellSizeArray();
84 const auto& dm = S_stage_data[
IntVars::cons].DistributionMap();
86 MultiFab Delta_rho_theta( ba , dm, 1, 1);
87 MultiFab Delta_rho_w (convert(ba,IntVect(0,0,1)), dm, 1, IntVect(1,1,0));
89 MultiFab coeff_A_mf(fast_coeffs, make_alias, 0, 1);
90 MultiFab inv_coeff_B_mf(fast_coeffs, make_alias, 1, 1);
91 MultiFab coeff_C_mf(fast_coeffs, make_alias, 2, 1);
92 MultiFab coeff_P_mf(fast_coeffs, make_alias, 3, 1);
93 MultiFab coeff_Q_mf(fast_coeffs, make_alias, 4, 1);
97 const Array<Real,AMREX_SPACEDIM> grav{0.0, 0.0, -gravity};
98 const GpuArray<Real,AMREX_SPACEDIM> grav_gpu{grav[0], grav[1], grav[2]};
111 AMREX_ALWAYS_ASSERT(nrk > 0 || step == 0);
118 #pragma omp parallel if (Gpu::notInLaunchRegion())
120 for ( MFIter mfi(S_stage_data[
IntVars::cons],TilingIfNotGPU()); mfi.isValid(); ++mfi)
122 const Array4<const Real>& prev_cons = S_prev[
IntVars::cons].const_array(mfi);
123 const Array4<const Real>& prev_zmom = S_prev[
IntVars::zmom].const_array(mfi);
125 const Array4<const Real>& stage_cons = S_stage_data[
IntVars::cons].const_array(mfi);
126 const Array4<const Real>& stage_zmom = S_stage_data[
IntVars::zmom].const_array(mfi);
128 const Array4<Real>& prev_drho_w = Delta_rho_w.array(mfi);
129 const Array4<Real>& prev_drho_theta = Delta_rho_theta.array(mfi);
130 const Array4<Real>& lagged_delta_rt = S_scratch[
IntVars::cons].array(mfi);
131 const Array4<Real>& theta_extrap = extrap.array(mfi);
133 Box gbx = mfi.growntilebox(1);
134 ParallelFor(gbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
139 theta_extrap(i,j,k) = prev_drho_theta(i,j,k);
141 theta_extrap(i,j,k) = prev_drho_theta(i,j,k) + beta_d *
142 ( prev_drho_theta(i,j,k) - lagged_delta_rt(i,j,k,
RhoTheta_comp) );
147 lagged_delta_rt(i,j,k,
RhoTheta_comp) = prev_drho_theta(i,j,k);
152 Box gtbz = mfi.nodaltilebox(2);
153 gtbz.grow(IntVect(1,1,0));
154 ParallelFor(gtbz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
155 prev_drho_w(i,j,k) = prev_zmom(i,j,k) - stage_zmom(i,j,k);
164 #pragma omp parallel if (Gpu::notInLaunchRegion())
166 for ( MFIter mfi(S_stage_data[
IntVars::cons],TilingIfNotGPU()); mfi.isValid(); ++mfi)
168 Box tbx = mfi.nodaltilebox(0);
169 Box tby = mfi.nodaltilebox(1);
171 const Array4<Real const>& xmom_src_arr = xmom_src.const_array(mfi);
172 const Array4<Real const>& ymom_src_arr = ymom_src.const_array(mfi);
174 const Array4<const Real> & stage_xmom = S_stage_data[
IntVars::xmom].const_array(mfi);
175 const Array4<const Real> & stage_ymom = S_stage_data[
IntVars::ymom].const_array(mfi);
176 const Array4<const Real> & qt_arr =
qt.const_array(mfi);
178 const Array4<const Real>& slow_rhs_rho_u = S_slow_rhs[
IntVars::xmom].const_array(mfi);
179 const Array4<const Real>& slow_rhs_rho_v = S_slow_rhs[
IntVars::ymom].const_array(mfi);
181 const Array4<Real>& temp_cur_xmom_arr = temp_cur_xmom.array(mfi);
182 const Array4<Real>& temp_cur_ymom_arr = temp_cur_ymom.array(mfi);
184 const Array4<const Real>& prev_xmom = S_prev[
IntVars::xmom].const_array(mfi);
185 const Array4<const Real>& prev_ymom = S_prev[
IntVars::ymom].const_array(mfi);
188 const Array4< Real>& avg_xmom = S_scratch[
IntVars::xmom].array(mfi);
189 const Array4< Real>& avg_ymom = S_scratch[
IntVars::ymom].array(mfi);
191 const Array4<const Real>& pi_stage_ca = pi_stage.const_array(mfi);
193 const Array4<Real>& theta_extrap = extrap.array(mfi);
196 const Array4<const Real>& mf_ux = mapfac[
MapFacType::u_x]->const_array(mfi);
197 const Array4<const Real>& mf_vy = mapfac[
MapFacType::v_y]->const_array(mfi);
202 if (nrk == 0 and step == 0) {
203 ParallelFor(tbx, tby,
204 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
206 Real new_drho_u = dtau * slow_rhs_rho_u(i,j,k) + dtau * xmom_src_arr(i,j,k);;
207 avg_xmom(i,j,k) += facinv*new_drho_u;
208 temp_cur_xmom_arr(i,j,k) = stage_xmom(i,j,k) + new_drho_u;
210 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
212 Real new_drho_v = dtau * slow_rhs_rho_v(i,j,k) + dtau * ymom_src_arr(i,j,k);
213 avg_ymom(i,j,k) += facinv*new_drho_v;
214 temp_cur_ymom_arr(i,j,k) = stage_ymom(i,j,k) + new_drho_v;
217 ParallelFor(tbx, tby,
218 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
221 Real
gpx = (theta_extrap(i,j,k) - theta_extrap(i-1,j,k))*dxi;
224 Real q = (l_use_moisture) ? 0.5 * (qt_arr(i,j,k) + qt_arr(i-1,j,k)) : 0.0;
226 Real pi_c = 0.5 * (pi_stage_ca(i-1,j,k,0) + pi_stage_ca(i,j,k,0));
227 Real fast_rhs_rho_u = -
Gamma *
R_d * pi_c *
gpx / (1.0 + q);
229 Real new_drho_u = prev_xmom(i,j,k) - stage_xmom(i,j,k)
230 + dtau * fast_rhs_rho_u + dtau * slow_rhs_rho_u(i,j,k)
231 + dtau * xmom_src_arr(i,j,k);
233 avg_xmom(i,j,k) += facinv*new_drho_u;
235 temp_cur_xmom_arr(i,j,k) = stage_xmom(i,j,k) + new_drho_u;
237 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
240 Real
gpy = (theta_extrap(i,j,k) - theta_extrap(i,j-1,k))*dyi;
243 Real q = (l_use_moisture) ? 0.5 * (qt_arr(i,j,k) + qt_arr(i,j-1,k)) : 0.0;
245 Real pi_c = 0.5 * (pi_stage_ca(i,j-1,k,0) + pi_stage_ca(i,j,k,0));
246 Real fast_rhs_rho_v = -
Gamma *
R_d * pi_c *
gpy / (1.0 + q);
248 Real new_drho_v = prev_ymom(i,j,k) - stage_ymom(i,j,k)
249 + dtau * fast_rhs_rho_v + dtau * slow_rhs_rho_v(i,j,k)
250 + dtau * ymom_src_arr(i,j,k);
252 avg_ymom(i,j,k) += facinv*new_drho_v;
254 temp_cur_ymom_arr(i,j,k) = stage_ymom(i,j,k) + new_drho_v;
260 #pragma omp parallel if (Gpu::notInLaunchRegion())
263 std::array<FArrayBox,AMREX_SPACEDIM> flux;
266 Box bx = mfi.tilebox();
267 Box tbz = surroundingNodes(bx,2);
269 Box vbx = mfi.validbox();
270 const auto& vbx_hi = ubound(vbx);
272 const Array4<Real const>& zmom_src_arr = zmom_src.const_array(mfi);
274 const Array4<const Real>& stage_xmom = S_stage_data[
IntVars::xmom].const_array(mfi);
275 const Array4<const Real>& stage_ymom = S_stage_data[
IntVars::ymom].const_array(mfi);
276 const Array4<const Real>& stage_zmom = S_stage_data[
IntVars::zmom].const_array(mfi);
277 const Array4<const Real> & prim = S_stage_prim.const_array(mfi);
278 const Array4<const Real> & qt_arr =
qt.const_array(mfi);
280 const Array4<const Real>& prev_drho_theta = Delta_rho_theta.array(mfi);
282 const Array4<const Real>& prev_cons = S_prev[
IntVars::cons].const_array(mfi);
283 const Array4<const Real>& stage_cons = S_stage_data[
IntVars::cons].const_array(mfi);
285 const Array4<const Real>& slow_rhs_cons = S_slow_rhs[
IntVars::cons].const_array(mfi);
286 const Array4<const Real>& slow_rhs_rho_w = S_slow_rhs[
IntVars::zmom].const_array(mfi);
288 const Array4<const Real>& prev_zmom = S_prev[
IntVars::zmom].const_array(mfi);
289 const Array4< Real>& cur_zmom = S_data[
IntVars::zmom].array(mfi);
291 const Array4<Real>& temp_cur_xmom_arr = temp_cur_xmom.array(mfi);
292 const Array4<Real>& temp_cur_ymom_arr = temp_cur_ymom.array(mfi);
295 const Array4< Real>& avg_zmom = S_scratch[
IntVars::zmom].array(mfi);
298 const Array4<const Real>& mf_mx = mapfac[
MapFacType::m_x]->const_array(mfi);
299 const Array4<const Real>& mf_my = mapfac[
MapFacType::m_y]->const_array(mfi);
300 const Array4<const Real>& mf_uy = mapfac[
MapFacType::u_y]->const_array(mfi);
301 const Array4<const Real>& mf_vx = mapfac[
MapFacType::v_x]->const_array(mfi);
304 RHS_fab.resize(tbz,1, The_Async_Arena());
307 soln_fab.resize(tbz,1, The_Async_Arena());
309 auto const& RHS_a = RHS_fab.array();
310 auto const& soln_a = soln_fab.array();
312 auto const& temp_rhs_arr = temp_rhs.array(mfi);
314 auto const& coeffA_a = coeff_A_mf.array(mfi);
315 auto const& inv_coeffB_a = inv_coeff_B_mf.array(mfi);
316 auto const& coeffC_a = coeff_C_mf.array(mfi);
317 auto const& coeffP_a = coeff_P_mf.array(mfi);
318 auto const& coeffQ_a = coeff_Q_mf.array(mfi);
323 for (
int dir = 0; dir < AMREX_SPACEDIM; ++dir) {
324 flux[dir].resize(surroundingNodes(bx,dir),2);
325 flux[dir].setVal<RunOn::Device>(0.);
327 const GpuArray<const Array4<Real>, AMREX_SPACEDIM>
328 flx_arr{{AMREX_D_DECL(flux[0].array(), flux[1].array(), flux[2].array())}};
331 ParallelFor(bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
332 Real xflux_lo = (temp_cur_xmom_arr(i ,j,k) - stage_xmom(i ,j,k)) / mf_uy(i ,j,0);
333 Real xflux_hi = (temp_cur_xmom_arr(i+1,j,k) - stage_xmom(i+1,j,k)) / mf_uy(i+1,j,0);
334 Real yflux_lo = (temp_cur_ymom_arr(i,j ,k) - stage_ymom(i,j ,k)) / mf_vx(i,j ,0);
335 Real yflux_hi = (temp_cur_ymom_arr(i,j+1,k) - stage_ymom(i,j+1,k)) / mf_vx(i,j+1,0);
337 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
339 temp_rhs_arr(i,j,k,
Rho_comp ) = ( xflux_hi - xflux_lo ) * dxi * mfsq
340 + ( yflux_hi - yflux_lo ) * dyi * mfsq;
341 temp_rhs_arr(i,j,k,
RhoTheta_comp) = (( xflux_hi * (prim(i,j,k,0) + prim(i+1,j,k,0)) -
342 xflux_lo * (prim(i,j,k,0) + prim(i-1,j,k,0)) ) * dxi * mfsq +
343 ( yflux_hi * (prim(i,j,k,0) + prim(i,j+1,k,0)) -
344 yflux_lo * (prim(i,j,k,0) + prim(i,j-1,k,0)) ) * dyi * mfsq) * 0.5;
347 (flx_arr[0])(i,j,k,0) = xflux_lo;
348 (flx_arr[0])(i,j,k,1) = (flx_arr[0])(i ,j,k,0) * 0.5 * (prim(i,j,k,0) + prim(i-1,j,k,0));
350 (flx_arr[1])(i,j,k,0) = yflux_lo;
351 (flx_arr[1])(i,j,k,1) = (flx_arr[1])(i,j ,k,0) * 0.5 * (prim(i,j,k,0) + prim(i,j-1,k,0));
354 (flx_arr[0])(i+1,j,k,0) = xflux_hi;
355 (flx_arr[0])(i+1,j,k,1) = (flx_arr[0])(i+1,j,k,0) * 0.5 * (prim(i,j,k,0) + prim(i+1,j,k,0));
358 (flx_arr[1])(i,j+1,k,0) = yflux_hi;
359 (flx_arr[1])(i,j+1,k,1) = (flx_arr[1])(i,j+1,k,0) * 0.5 * (prim(i,j,k,0) + prim(i,j+1,k,0));
364 Box bx_shrunk_in_k = bx;
365 int klo = tbz.smallEnd(2);
366 int khi = tbz.bigEnd(2);
367 bx_shrunk_in_k.setSmall(2,klo+1);
368 bx_shrunk_in_k.setBig(2,khi-1);
373 Real halfg = std::abs(0.5 * grav_gpu[2]);
379 ParallelFor(bx_shrunk_in_k, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
381 Real q = (l_use_moisture) ? 0.5 * (qt_arr(i,j,k) + qt_arr(i,j,k-1)) : 0.0;
383 Real coeff_P = coeffP_a(i,j,k) / (1.0 + q);
384 Real coeff_Q = coeffQ_a(i,j,k) / (1.0 + q);
390 Real Omega_kp1 = prev_zmom(i,j,k+1) - stage_zmom(i,j,k+1);
391 Real Omega_k = prev_zmom(i,j,k ) - stage_zmom(i,j,k );
392 Real Omega_km1 = prev_zmom(i,j,k-1) - stage_zmom(i,j,k-1);
396 Real old_drho_km1 = prev_cons(i,j,k-1,
Rho_comp) - stage_cons(i,j,k-1,
Rho_comp);
397 Real R0_tmp = coeff_P * prev_drho_theta(i,j,k) + coeff_Q * prev_drho_theta(i,j,k-1)
398 - halfg * ( old_drho_k + old_drho_km1 );
401 Real R1_tmp = halfg * (-slow_rhs_cons(i,j,k ,
Rho_comp)
403 +temp_rhs_arr(i,j,k,0) + temp_rhs_arr(i,j,k-1) )
408 R1_tmp += beta_1 * dzi * ( (Omega_kp1 - Omega_km1) * halfg
409 -(Omega_kp1*theta_t_hi - Omega_k *theta_t_mid) * coeff_P
410 -(Omega_k *theta_t_mid - Omega_km1*theta_t_lo ) * coeff_Q );
413 RHS_a(i,j,k) = Omega_k + dtau * (slow_rhs_rho_w(i,j,k) + R0_tmp + dtau * beta_2 * R1_tmp + zmom_src_arr(i,j,k));
420 auto const lo = lbound(bx);
421 auto const hi = ubound(bx);
423 ParallelFor(b2d, [=] AMREX_GPU_DEVICE (
int i,
int j,
int)
426 RHS_a (i,j,lo.z) = prev_zmom(i,j,lo.z) - stage_zmom(i,j,lo.z)
427 + dtau * slow_rhs_rho_w(i,j,lo.z)
428 + dtau * zmom_src_arr(i,j,lo.z);
431 RHS_a (i,j,hi.z+1) = prev_zmom(i,j,hi.z+1) - stage_zmom(i,j,hi.z+1)
432 + dtau * slow_rhs_rho_w(i,j,hi.z+1)
433 + dtau * zmom_src_arr(i,j,hi.z+1);
437 if (l_implicit_substepping) {
439 ParallelFor(b2d, [=] AMREX_GPU_DEVICE (
int i,
int j,
int)
442 soln_a(i,j,lo.z) = RHS_a(i,j,lo.z) * inv_coeffB_a(i,j,lo.z);
443 cur_zmom(i,j,lo.z) = stage_zmom(i,j,lo.z) + soln_a(i,j,lo.z);
445 for (
int k = lo.z+1; k <= hi.z+1; k++) {
446 soln_a(i,j,k) = (RHS_a(i,j,k)-coeffA_a(i,j,k)*soln_a(i,j,k-1)) * inv_coeffB_a(i,j,k);
449 cur_zmom(i,j,hi.z+1) = stage_zmom(i,j,hi.z+1) + soln_a(i,j,hi.z+1);
451 for (
int k = hi.z; k >= lo.z; k--) {
452 soln_a(i,j,k) -= ( coeffC_a(i,j,k) * inv_coeffB_a(i,j,k) ) *soln_a(i,j,k+1);
453 cur_zmom(i,j,k) = stage_zmom(i,j,k) + soln_a(i,j,k);
459 ParallelFor(b2d, [=] AMREX_GPU_DEVICE (
int i,
int j,
int)
461 for (
int k = lo.z; k <= hi.z+1; k++) {
462 soln_a(i,j,k) = RHS_a(i,j,k);
463 cur_zmom(i,j,k) = stage_zmom(i,j,k) + soln_a(i,j,k);
468 if (l_implicit_substepping) {
470 for (
int j = lo.y; j <= hi.y; ++j) {
472 for (
int i = lo.x; i <= hi.x; ++i) {
473 soln_a(i,j,lo.z) = RHS_a(i,j,lo.z) * inv_coeffB_a(i,j,lo.z);
476 for (
int k = lo.z+1; k <= hi.z+1; ++k) {
477 for (
int j = lo.y; j <= hi.y; ++j) {
479 for (
int i = lo.x; i <= hi.x; ++i) {
480 soln_a(i,j,k) = (RHS_a(i,j,k)-coeffA_a(i,j,k)*soln_a(i,j,k-1)) * inv_coeffB_a(i,j,k);
484 for (
int j = lo.y; j <= hi.y; ++j) {
486 for (
int i = lo.x; i <= hi.x; ++i) {
487 cur_zmom(i,j,hi.z+1) = stage_zmom(i,j,hi.z+1) + soln_a(i,j,hi.z+1);
490 for (
int k = hi.z; k >= lo.z; --k) {
491 for (
int j = lo.y; j <= hi.y; ++j) {
493 for (
int i = lo.x; i <= hi.x; ++i) {
494 soln_a(i,j,k) -= ( coeffC_a(i,j,k) * inv_coeffB_a(i,j,k) ) * soln_a(i,j,k+1);
495 cur_zmom(i,j,k) = stage_zmom(i,j,k) + soln_a(i,j,k);
501 for (
int k = lo.z; k <= hi.z+1; ++k) {
502 for (
int j = lo.y; j <= hi.y; ++j) {
504 for (
int i = lo.x; i <= hi.x; ++i) {
506 soln_a(i,j,k) = RHS_a(i,j,k);
508 cur_zmom(i,j,k) = stage_zmom(i,j,k) + soln_a(i,j,k);
519 const Array4<Real>& prev_drho_w = Delta_rho_w.array(mfi);
520 ParallelFor(bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
522 Real zflux_lo = beta_2 * soln_a(i,j,k ) + beta_1 * prev_drho_w(i,j,k );
523 Real zflux_hi = beta_2 * soln_a(i,j,k+1) + beta_1 * prev_drho_w(i,j,k+1);
525 avg_zmom(i,j,k) += facinv*zflux_lo / (mf_mx(i,j,0) * mf_my(i,j,0));
527 (flx_arr[2])(i,j,k,0) = zflux_lo / (mf_mx(i,j,0) * mf_my(i,j,0));
528 (flx_arr[2])(i,j,k,1) = (flx_arr[2])(i,j,k,0) * 0.5 * (prim(i,j,k) + prim(i,j,k-1));
532 avg_zmom(i,j,k+1) += facinv * zflux_hi / (mf_mx(i,j,0) * mf_my(i,j,0));
534 (flx_arr[2])(i,j,k+1,0) = zflux_hi / (mf_mx(i,j,0) * mf_my(i,j,0));
535 (flx_arr[2])(i,j,k+1,1) = (flx_arr[2])(i,j,k+1,0) * 0.5 * (prim(i,j,k) + prim(i,j,k+1));
539 temp_rhs_arr(i,j,k,
Rho_comp ) += dzi * ( zflux_hi - zflux_lo );
540 temp_rhs_arr(i,j,k,
RhoTheta_comp) += 0.5 * dzi * ( zflux_hi * (prim(i,j,k) + prim(i,j,k+1))
541 - zflux_lo * (prim(i,j,k) + prim(i,j,k-1)) );
546 int strt_comp_reflux = 0;
548 int num_comp_reflux = 1;
549 if (level < finest_level) {
550 fr_as_crse->CrseAdd(mfi,
551 {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}},
552 dx, dtau, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device);
555 fr_as_fine->FineAdd(mfi,
556 {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}},
557 dx, dtau, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device);
563 Gpu::streamSynchronize();
570 #pragma omp parallel if (Gpu::notInLaunchRegion())
572 for ( MFIter mfi(S_stage_data[
IntVars::cons],TilingIfNotGPU()); mfi.isValid(); ++mfi)
574 const Box& bx = mfi.tilebox();
576 const Array4< Real>& cur_cons = S_data[
IntVars::cons].array(mfi);
577 const Array4<const Real>& prev_cons = S_prev[
IntVars::cons].const_array(mfi);
578 auto const& temp_rhs_arr = temp_rhs.const_array(mfi);
579 auto const& slow_rhs_cons = S_slow_rhs[
IntVars::cons].const_array(mfi);
580 const Array4<Real const>& cc_src_arr = cc_src.const_array(mfi);
583 ParallelFor(bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
595 ParallelFor(bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
609 const Array4<Real>& cur_xmom = S_data[
IntVars::xmom].array(mfi);
610 const Array4<Real>& cur_ymom = S_data[
IntVars::ymom].array(mfi);
612 const Array4<Real const>& temp_cur_xmom_arr = temp_cur_xmom.const_array(mfi);
613 const Array4<Real const>& temp_cur_ymom_arr = temp_cur_ymom.const_array(mfi);
615 Box tbx = surroundingNodes(bx,0);
616 Box tby = surroundingNodes(bx,1);
618 ParallelFor(tbx, tby,
619 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
621 cur_xmom(i,j,k) = temp_cur_xmom_arr(i,j,k);
623 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
625 cur_ymom(i,j,k) = temp_cur_ymom_arr(i,j,k);
constexpr amrex::Real R_d
Definition: ERF_Constants.H:10
constexpr amrex::Real Gamma
Definition: ERF_Constants.H:19
@ v_x
Definition: ERF_DataStruct.H:22
@ u_y
Definition: ERF_DataStruct.H:23
@ v_y
Definition: ERF_DataStruct.H:23
@ m_y
Definition: ERF_DataStruct.H:23
@ u_x
Definition: ERF_DataStruct.H:22
@ m_x
Definition: ERF_DataStruct.H:22
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
#define PrimTheta_comp
Definition: ERF_IndexDefines.H:50
AMREX_FORCE_INLINE amrex::IntVect TileNoZ()
Definition: ERF_TileNoZ.H:11
@ gpy
Definition: ERF_IndexDefines.H:151
@ gpx
Definition: ERF_IndexDefines.H:150
@ ymom
Definition: ERF_IndexDefines.H:160
@ cons
Definition: ERF_IndexDefines.H:158
@ zmom
Definition: ERF_IndexDefines.H:161
@ xmom
Definition: ERF_IndexDefines.H:159
@ qt
Definition: ERF_Kessler.H:27