Function for computing the scalar RHS for diffusion operator with terrain-fitted coordinates.
88 const Real explicit_fac =
one - implicit_fac;
91 Real l_abs_g = std::abs(grav_gpu[2]);
93 const Real dz_inv = cellSizeInv[2];
97 Box xbx_g1(
xbx); Box ybx_g1(
ybx);
98 if (xbx_g1.smallEnd(2) !=
dom_lo.z) xbx_g1.growLo(2,1);
99 if (ybx_g1.smallEnd(2) !=
dom_lo.z) ybx_g1.growLo(2,1);
100 if (xbx_g1.bigEnd(2) !=
dom_hi.z) xbx_g1.growHi(2,1);
101 if (ybx_g1.bigEnd(2) !=
dom_hi.z) ybx_g1.growHi(2,1);
103 for (
int n(0); n<num_comp; ++n) {
104 const int qty_index = start_comp + n;
108 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
110 const int prim_index = qty_index - 1;
124 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
126 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
127 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
128 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
129 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
130 Real GradCx =
dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
133 xflux(i,j,k) = hfx_x(i,j,0);
134 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
135 xflux(i,j,k) = qfx1_x(i,j,0);
137 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
140 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
142 const int prim_index = qty_index - 1;
155 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
157 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
158 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
159 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
160 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
161 Real GradCy =
dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
164 yflux(i,j,k) = hfx_y(i,j,0);
165 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
166 yflux(i,j,k) = qfx1_y(i,j,0);
168 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
171 ParallelFor(
zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
173 const int prim_index = qty_index - 1;
191 bool SurfLayer_on_zlo = ( use_SurfLayer && k ==
dom_lo.z);
193 if (ext_dir_on_zlo) {
204 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
205 +
c2 * cell_prim(i, j, k , prim_index)
206 + c3 * cell_prim(i, j, k+1, prim_index) );
207 }
else if (ext_dir_on_zhi) {
218 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
219 +
c2 * cell_prim(i, j, k-1, prim_index)
220 + c3 * cell_prim(i, j, k-2, prim_index) ) );
223 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
227 zflux(i,j,k) = hfx_z(i,j,0);
228 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
229 zflux(i,j,k) = qfx1_z(i,j,0);
231 zflux(i,j,k) = -rhoAlpha * GradCz;
235 if (!SurfLayer_on_zlo) {
236 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
239 if (!SurfLayer_on_zlo) {
240 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
243 qfx2_z(i,j,k) = zflux(i,j,k);
248 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
250 const int prim_index = qty_index - 1;
261 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
263 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
264 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
265 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
266 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
267 Real GradCx =
dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
270 xflux(i,j,k) = hfx_x(i,j,0);
271 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
272 xflux(i,j,k) = qfx1_x(i,j,0);
274 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
277 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
279 const int prim_index = qty_index - 1;
290 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
292 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
293 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
294 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
295 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
296 Real GradCy =
dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
299 yflux(i,j,k) = hfx_y(i,j,0);
300 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
301 yflux(i,j,k) = qfx1_y(i,j,0);
303 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
306 ParallelFor(
zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
308 const int prim_index = qty_index - 1;
324 bool SurfLayer_on_zlo = ( use_SurfLayer && k ==
dom_lo.z);
326 if (ext_dir_on_zlo) {
337 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
338 +
c2 * cell_prim(i, j, k , prim_index)
339 + c3 * cell_prim(i, j, k+1, prim_index) );
340 }
else if (ext_dir_on_zhi) {
351 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
352 +
c2 * cell_prim(i, j, k-1, prim_index)
353 + c3 * cell_prim(i, j, k-2, prim_index) ) );
356 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
360 zflux(i,j,k) = hfx_z(i,j,0);
361 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
362 zflux(i,j,k) = qfx1_z(i,j,0);
364 zflux(i,j,k) = -rhoAlpha * GradCz;
368 if (!SurfLayer_on_zlo) {
369 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
372 if (!SurfLayer_on_zlo) {
373 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
376 qfx2_z(i,j,k) = zflux(i,j,k);
382 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
384 const int prim_index = qty_index - 1;
394 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
396 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
397 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
398 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
399 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
400 Real GradCx =
dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
403 xflux(i,j,k) = hfx_x(i,j,0);
404 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
405 xflux(i,j,k) = qfx1_x(i,j,0);
407 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
410 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
412 const int prim_index = qty_index - 1;
422 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
424 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
425 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
426 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
427 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
428 Real GradCy =
dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
431 yflux(i,j,k) = hfx_y(i,j,0);
432 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
433 yflux(i,j,k) = qfx1_y(i,j,0);
435 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
438 ParallelFor(
zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
440 const int prim_index = qty_index - 1;
455 bool SurfLayer_on_zlo = ( use_SurfLayer && k ==
dom_lo.z);
457 if (ext_dir_on_zlo) {
468 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
469 +
c2 * cell_prim(i, j, k , prim_index)
470 + c3 * cell_prim(i, j, k+1, prim_index) );
471 }
else if (ext_dir_on_zhi) {
482 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
483 +
c2 * cell_prim(i, j, k-1, prim_index)
484 + c3 * cell_prim(i, j, k-2, prim_index) ) );
487 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
491 zflux(i,j,k) = hfx_z(i,j,0);
492 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
493 zflux(i,j,k) = qfx1_z(i,j,0);
495 zflux(i,j,k) = -rhoAlpha * GradCz;
499 if (!SurfLayer_on_zlo) {
500 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
503 if (!SurfLayer_on_zlo) {
504 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
507 qfx2_z(i,j,k) = zflux(i,j,k);
512 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
514 const int prim_index = qty_index - 1;
523 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
525 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
526 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
527 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
528 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
529 Real GradCx =
dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
532 xflux(i,j,k) = hfx_x(i,j,0);
533 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
534 xflux(i,j,k) = qfx1_x(i,j,0);
536 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
539 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
541 const int prim_index = qty_index - 1;
550 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k ==
dom_lo.z);
552 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
553 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
554 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
555 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
556 Real GradCy =
dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
559 yflux(i,j,k) = hfx_y(i,j,0);
560 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
561 yflux(i,j,k) = qfx1_y(i,j,0);
563 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
566 ParallelFor(
zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
568 const int prim_index = qty_index - 1;
583 bool SurfLayer_on_zlo = ( use_SurfLayer && k ==
dom_lo.z);
585 if (ext_dir_on_zlo) {
596 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
597 +
c2 * cell_prim(i, j, k , prim_index)
598 + c3 * cell_prim(i, j, k+1, prim_index) );
599 }
else if (ext_dir_on_zhi) {
610 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
611 +
c2 * cell_prim(i, j, k-1, prim_index)
612 + c3 * cell_prim(i, j, k-2, prim_index) ) );
615 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
619 zflux(i,j,k) = hfx_z(i,j,0);
620 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
621 zflux(i,j,k) = qfx1_z(i,j,0);
623 zflux(i,j,k) = -rhoAlpha * GradCz;
627 if (!SurfLayer_on_zlo) {
628 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
631 if (!SurfLayer_on_zlo) {
632 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
635 qfx2_z(i,j,k) = zflux(i,j,k);
644 ParallelFor(
zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
646 zflux(i,j,k) *= explicit_fac;
657 ParallelFor(bx,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
665 Real xfluxbar_lo, yfluxbar_lo;
667 Real xfluxlo =
myhalf * ( xflux(i,j,k ) + xflux(i+1,j,k ) );
668 Real xfluxhi =
myhalf * ( xflux(i,j,k+1) + xflux(i+1,j,k+1) );
669 xfluxbar_lo =
Real(1.5)*xfluxlo -
myhalf*xfluxhi;
671 Real yfluxlo =
myhalf * ( yflux(i,j,k ) + yflux(i,j+1,k ) );
672 Real yfluxhi =
myhalf * ( yflux(i,j,k+1) + yflux(i,j+1,k+1) );
673 yfluxbar_lo =
Real(1.5)*yfluxlo -
myhalf*yfluxhi;
675 xfluxbar_lo =
fourth * ( xflux(i,j,k ) + xflux(i+1,j ,k )
676 + xflux(i,j,k-1) + xflux(i+1,j ,k-1) );
677 yfluxbar_lo =
fourth * ( yflux(i,j,k ) + yflux(i ,j+1,k )
678 + yflux(i,j,k-1) + yflux(i ,j+1,k-1) );
681 Real xfluxbar_hi, yfluxbar_hi;
683 Real xfluxlo =
myhalf * ( xflux(i,j,k-1) + xflux(i+1,j,k-1) );
684 Real xfluxhi =
myhalf * ( xflux(i,j,k ) + xflux(i+1,j,k ) );
685 xfluxbar_hi =
Real(1.5)*xfluxhi -
myhalf*xfluxlo;
687 Real yfluxlo =
myhalf * ( yflux(i,j,k-1) + yflux(i,j+1,k-1) );
688 Real yfluxhi =
myhalf * ( yflux(i,j,k ) + yflux(i,j+1,k ) );
689 yfluxbar_hi =
Real(1.5)*yfluxhi -
myhalf*yfluxlo;
691 xfluxbar_hi =
fourth * ( xflux(i,j,k+1) + xflux(i+1,j ,k+1)
692 + xflux(i,j,k ) + xflux(i+1,j ,k ) );
693 yfluxbar_hi =
fourth * ( yflux(i,j,k+1) + yflux(i ,j+1,k+1)
694 + yflux(i,j,k ) + yflux(i ,j+1,k ) );
698 Real zflux_lo = zflux(i,j,k )
699 - met_h_xi_lo * mf_mx(i,j,0) * xfluxbar_lo
700 - met_h_eta_lo * mf_my(i,j,0) * yfluxbar_lo;
701 Real zflux_hi = zflux(i,j,k+1)
702 - met_h_xi_hi * mf_mx(i,j,0) * xfluxbar_hi
703 - met_h_eta_hi * mf_my(i,j,0) * yfluxbar_hi;
705 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
706 Real stateContrib = ( xflux(i+1,j ,k ) * ax(i+1,j,k) / mf_uy(i+1,j,0)
707 -xflux(i ,j ,k ) * ax(i ,j,k) / mf_uy(i ,j,0) ) *
dx_inv * mfsq
708 +( yflux(i ,j+1,k ) * ay(i,j+1,k) / mf_vx(i,j+1,0)
709 -yflux(i ,j ,k ) * ay(i,j ,k) / mf_vx(i,j ,0) ) *
dy_inv * mfsq
710 +( zflux_hi - zflux_lo) * dz_inv;
712 stateContrib /= detJ(i,j,k);
714 cell_rhs(i,j,k,qty_index) -= stateContrib;
constexpr amrex::Real two
Definition: ERF_Constants.H:8
constexpr amrex::Real one
Definition: ERF_Constants.H:7
constexpr amrex::Real fourth
Definition: ERF_Constants.H:12
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:11
void DiffusionSrcForState_T(const Box &bx, const Box &domain, int start_comp, int num_comp, const bool &rotate, const Array4< const Real > &u, const Array4< const Real > &v, const Array4< const Real > &cell_data, const Array4< const Real > &cell_prim, const Array4< Real > &cell_rhs, const Array4< Real > &xflux, const Array4< Real > &yflux, const Array4< Real > &zflux, const Array4< const Real > &z_nd, const Array4< const Real > &z_cc, const Array4< const Real > &ax, const Array4< const Real > &ay, const Array4< const Real > &, const Array4< const Real > &detJ, const GpuArray< Real, AMREX_SPACEDIM > &cellSizeInv, const Array4< const Real > &SmnSmn_a, const Array4< const Real > &mf_mx, const Array4< const Real > &mf_ux, const Array4< const Real > &mf_vx, const Array4< const Real > &mf_my, const Array4< const Real > &mf_uy, const Array4< const Real > &mf_vy, Array4< Real > &hfx_x, Array4< Real > &hfx_y, Array4< Real > &hfx_z, Array4< Real > &qfx1_x, Array4< Real > &qfx1_y, Array4< Real > &qfx1_z, Array4< Real > &qfx2_z, Array4< Real > &diss, const Array4< const Real > &mu_turb, const SolverChoice &solverChoice, const int level, const Array4< const Real > &tm_arr, const GpuArray< Real, AMREX_SPACEDIM > grav_gpu, const BCRec *bc_ptr, const bool use_SurfLayer, const Real implicit_fac)
Definition: ERF_DiffusionSrcForState_T.cpp:44
#define RhoScalar_comp
Definition: ERF_IndexDefines.H:40
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
#define RhoQ2_comp
Definition: ERF_IndexDefines.H:43
#define NSCALARS
Definition: ERF_IndexDefines.H:16
#define RhoQ1_comp
Definition: ERF_IndexDefines.H:42
#define PrimScalar_comp
Definition: ERF_IndexDefines.H:52
ParallelFor(bx, [=] 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+myhalf) *dx[0])/mf_m(i, j, 0);const Real z=z_cc(i, j, k);Real L=std::sqrt(std::pow((x - x_c)/x_r, 2)+std::pow((z - z_c)/z_r, 2));if(L<=one) { Real dT=T_pert *(std::cos(PI *L)+one)/two;Real Tbar_hse=p_hse(i, j, k)/(R_d *r_hse(i, j, k));Real theta_perturbed=(Tbar_hse+dT) *std::pow(p_0/p_hse(i, j, k), rdOcp);Real theta_0=(Tbar_hse) *std::pow(p_0/p_hse(i, j, k), rdOcp);if(const_rho) { state_pert(i, j, k, RhoTheta_comp)=r_hse(i, j, k) *(theta_perturbed - theta_0);} else { state_pert(i, j, k, Rho_comp)=getRhoThetagivenP(p_hse(i, j, k))/theta_perturbed - r_hse(i, j, k);} } })
int * d_eddy_diff_idx
Definition: ERF_SetupDiff.H:47
const Box zbx
Definition: ERF_SetupDiff.H:9
const Real dx_inv
Definition: ERF_SetupDiff.H:4
const Real dy_inv
Definition: ERF_SetupDiff.H:5
int * d_eddy_diff_idy
Definition: ERF_SetupDiff.H:48
const Box xbx
Definition: ERF_SetupDiff.H:7
const Box ybx
Definition: ERF_SetupDiff.H:8
const auto & dom_hi
Definition: ERF_SetupVertDiff.H:2
bool l_turb
Definition: ERF_SetupVertDiff.H:9
const auto & dom_lo
Definition: ERF_SetupVertDiff.H:1
bool l_consA
Definition: ERF_SetupVertDiff.H:8
int * d_eddy_diff_idz
Definition: ERF_SetupVertDiff.H:108
Real * d_alpha_eff
Definition: ERF_SetupVertDiff.H:105
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_xi_AtIface(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:117
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_zeta_AtKface(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:184
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_Z_AtWFace(const int &i, const int &j, const int &k, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:376
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_xi_AtKface(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:198
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_eta_AtJface(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:170
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_eta_AtKface(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:211
@ RhoScalar_bc_comp
Definition: ERF_IndexDefines.H:80
@ ext_dir
Definition: ERF_IndexDefines.H:227
@ ext_dir_prim
Definition: ERF_IndexDefines.H:229
real(c_double), parameter c2
Definition: ERF_module_model_constants.F90:35
real(c_double), private c1
Definition: ERF_module_mp_morr_two_moment.F90:212