Function for computing the scalar RHS for diffusion operator with terrain-fitted coordinates.
99 const Real explicit_fac =
one - implicit_fac;
102 Real l_abs_g = std::abs(grav_gpu[2]);
104 const Real dz_inv = cellSizeInv[2];
108 Box xbx_g1(xbx); Box ybx_g1(ybx);
109 if (xbx_g1.smallEnd(2) != dom_lo.z) xbx_g1.growLo(2,1);
110 if (ybx_g1.smallEnd(2) != dom_lo.z) ybx_g1.growLo(2,1);
111 if (xbx_g1.bigEnd(2) != dom_hi.z) xbx_g1.growHi(2,1);
112 if (ybx_g1.bigEnd(2) != dom_hi.z) ybx_g1.growHi(2,1);
114 for (
int n(0); n<num_comp; ++n) {
115 const int qty_index = start_comp + n;
118 if (l_consA && l_turb) {
119 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
121 const int prim_index = qty_index - 1;
125 Real rhoAlpha = rhoFace * d_alpha_eff[prim_scal_index];
126 rhoAlpha +=
myhalf * ( mu_turb(i , j, k, d_eddy_diff_idx[prim_scal_index])
127 + mu_turb(i-1, j, k, d_eddy_diff_idx[prim_scal_index]) );
135 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
137 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
138 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
139 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
140 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
141 Real GradCx = dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
144 xflux(i,j,k) = hfx_x(i,j,0);
145 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
146 xflux(i,j,k) = qfx1_x(i,j,0);
148 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
151 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
153 const int prim_index = qty_index - 1;
157 Real rhoAlpha = rhoFace * d_alpha_eff[prim_scal_index];
158 rhoAlpha +=
myhalf * ( mu_turb(i, j , k, d_eddy_diff_idy[prim_scal_index])
159 + mu_turb(i, j-1, k, d_eddy_diff_idy[prim_scal_index]) );
166 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
168 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
169 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
170 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
171 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
172 Real GradCy = dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
175 yflux(i,j,k) = hfx_y(i,j,0);
176 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
177 yflux(i,j,k) = qfx1_y(i,j,0);
179 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
182 ParallelFor(zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
184 const int prim_index = qty_index - 1;
188 Real rhoAlpha = rhoFace * d_alpha_eff[prim_scal_index];
189 rhoAlpha +=
myhalf * ( mu_turb(i, j, k , d_eddy_diff_idz[prim_scal_index])
190 + mu_turb(i, j, k-1, d_eddy_diff_idz[prim_scal_index]) );
202 bool SurfLayer_on_zlo = ( use_SurfLayer && k == dom_lo.z);
204 if (ext_dir_on_zlo) {
215 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
216 +
c2 * cell_prim(i, j, k , prim_index)
217 + c3 * cell_prim(i, j, k+1, prim_index) );
218 }
else if (ext_dir_on_zhi) {
229 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
230 +
c2 * cell_prim(i, j, k-1, prim_index)
231 + c3 * cell_prim(i, j, k-2, prim_index) ) );
234 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
237 if (SurfLayer_on_zlo) {
239 zflux(i,j,k) = hfx_z(i,j,0);
241 zflux(i,j,k) = qfx1_z(i,j,0);
246 zflux(i,j,k) = -rhoAlpha * GradCz;
250 if (!SurfLayer_on_zlo) {
251 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
254 if (!SurfLayer_on_zlo) {
255 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
258 qfx2_z(i,j,k) = zflux(i,j,k);
263 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
265 const int prim_index = qty_index - 1;
267 Real rhoAlpha = d_alpha_eff[prim_index];
268 rhoAlpha +=
myhalf * ( mu_turb(i , j, k, d_eddy_diff_idx[prim_index])
269 + mu_turb(i-1, j, k, d_eddy_diff_idx[prim_index]) );
276 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
278 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
279 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
280 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
281 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
282 Real GradCx = dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
285 xflux(i,j,k) = hfx_x(i,j,0);
286 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
287 xflux(i,j,k) = qfx1_x(i,j,0);
289 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
292 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
294 const int prim_index = qty_index - 1;
296 Real rhoAlpha = d_alpha_eff[prim_index];
297 rhoAlpha +=
myhalf * ( mu_turb(i, j , k, d_eddy_diff_idy[prim_index])
298 + mu_turb(i, j-1, k, d_eddy_diff_idy[prim_index]) );
305 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
307 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
308 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
309 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
310 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
311 Real GradCy = dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
314 yflux(i,j,k) = hfx_y(i,j,0);
315 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
316 yflux(i,j,k) = qfx1_y(i,j,0);
318 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
321 ParallelFor(zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
323 const int prim_index = qty_index - 1;
325 Real rhoAlpha = d_alpha_eff[prim_index];
326 rhoAlpha +=
myhalf * ( mu_turb(i, j, k , d_eddy_diff_idz[prim_index])
327 + mu_turb(i, j, k-1, d_eddy_diff_idz[prim_index]) );
339 bool SurfLayer_on_zlo = ( use_SurfLayer && k == dom_lo.z);
341 if (ext_dir_on_zlo) {
352 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
353 +
c2 * cell_prim(i, j, k , prim_index)
354 + c3 * cell_prim(i, j, k+1, prim_index) );
355 }
else if (ext_dir_on_zhi) {
366 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
367 +
c2 * cell_prim(i, j, k-1, prim_index)
368 + c3 * cell_prim(i, j, k-2, prim_index) ) );
371 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
374 if (SurfLayer_on_zlo) {
376 zflux(i,j,k) = hfx_z(i,j,0);
378 zflux(i,j,k) = qfx1_z(i,j,0);
383 zflux(i,j,k) = -rhoAlpha * GradCz;
387 if (!SurfLayer_on_zlo) {
388 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
391 if (!SurfLayer_on_zlo) {
392 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
395 qfx2_z(i,j,k) = zflux(i,j,k);
401 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
403 const int prim_index = qty_index - 1;
406 Real rhoAlpha = rhoFace * d_alpha_eff[prim_index];
413 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
415 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
416 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
417 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
418 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
419 Real GradCx = dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
422 xflux(i,j,k) = hfx_x(i,j,0);
423 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
424 xflux(i,j,k) = qfx1_x(i,j,0);
426 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
429 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
431 const int prim_index = qty_index - 1;
434 Real rhoAlpha = rhoFace * d_alpha_eff[prim_index];
441 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
443 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
444 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
445 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
446 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
447 Real GradCy = dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
450 yflux(i,j,k) = hfx_y(i,j,0);
451 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
452 yflux(i,j,k) = qfx1_y(i,j,0);
454 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
457 ParallelFor(zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
459 const int prim_index = qty_index - 1;
462 Real rhoAlpha = rhoFace * d_alpha_eff[prim_index];
474 bool SurfLayer_on_zlo = ( use_SurfLayer && k == dom_lo.z);
476 if (ext_dir_on_zlo) {
487 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
488 +
c2 * cell_prim(i, j, k , prim_index)
489 + c3 * cell_prim(i, j, k+1, prim_index) );
490 }
else if (ext_dir_on_zhi) {
501 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
502 +
c2 * cell_prim(i, j, k-1, prim_index)
503 + c3 * cell_prim(i, j, k-2, prim_index) ) );
506 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
509 if (SurfLayer_on_zlo) {
511 zflux(i,j,k) = hfx_z(i,j,0);
513 zflux(i,j,k) = qfx1_z(i,j,0);
518 zflux(i,j,k) = -rhoAlpha * GradCz;
522 if (!SurfLayer_on_zlo) {
523 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
526 if (!SurfLayer_on_zlo) {
527 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
530 qfx2_z(i,j,k) = zflux(i,j,k);
535 ParallelFor(xbx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
537 const int prim_index = qty_index - 1;
539 Real rhoAlpha = d_alpha_eff[prim_index];
546 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
548 Real idz_hi =
one / (z_cc(i ,j,k+1) - z_cc(i ,j,k-1));
549 Real idz_lo =
one / (z_cc(i-1,j,k+1) - z_cc(i-1,j,k-1));
550 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i-1, j, k+1, prim_index)*idz_lo
551 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i-1, j, k-1, prim_index)*idz_lo );
552 Real GradCx = dx_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i-1, j, k , prim_index) );
555 xflux(i,j,k) = hfx_x(i,j,0);
556 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
557 xflux(i,j,k) = qfx1_x(i,j,0);
559 xflux(i,j,k) = -rhoAlpha * mf_ux(i,j,0) * ( GradCx - met_h_xi*GradCz );
562 ParallelFor(ybx_g1, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
564 const int prim_index = qty_index - 1;
566 Real rhoAlpha = d_alpha_eff[prim_index];
573 bool SurfLayer_on_zlo = ( use_SurfLayer && rotate && k == dom_lo.z);
575 Real idz_hi =
one / (z_cc(i,j ,k+1) - z_cc(i,j ,k-1));
576 Real idz_lo =
one / (z_cc(i,j-1,k+1) - z_cc(i,j-1,k-1));
577 Real GradCz =
myhalf * ( cell_prim(i, j, k+1, prim_index)*idz_hi + cell_prim(i, j-1, k+1, prim_index)*idz_lo
578 - cell_prim(i, j, k-1, prim_index)*idz_hi - cell_prim(i, j-1, k-1, prim_index)*idz_lo );
579 Real GradCy = dy_inv * ( cell_prim(i, j, k , prim_index) - cell_prim(i, j-1, k , prim_index) );
582 yflux(i,j,k) = hfx_y(i,j,0);
583 }
else if (SurfLayer_on_zlo && (qty_index ==
RhoQ1_comp)) {
584 yflux(i,j,k) = qfx1_y(i,j,0);
586 yflux(i,j,k) = -rhoAlpha * mf_vy(i,j,0) * ( GradCy - met_h_eta*GradCz );
589 ParallelFor(zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
591 const int prim_index = qty_index - 1;
593 Real rhoAlpha = d_alpha_eff[prim_index];
606 bool SurfLayer_on_zlo = ( use_SurfLayer && k == dom_lo.z);
608 if (ext_dir_on_zlo) {
619 GradCz = idz0 * (
c1 * cell_prim(i, j, k-1, prim_index)
620 +
c2 * cell_prim(i, j, k , prim_index)
621 + c3 * cell_prim(i, j, k+1, prim_index) );
622 }
else if (ext_dir_on_zhi) {
633 GradCz = idz0 * ( -(
c1 * cell_prim(i, j, k , prim_index)
634 +
c2 * cell_prim(i, j, k-1, prim_index)
635 + c3 * cell_prim(i, j, k-2, prim_index) ) );
638 GradCz = (dz_inv/met_h_zeta) * ( cell_prim(i, j, k, prim_index) - cell_prim(i, j, k-1, prim_index) );
641 if (SurfLayer_on_zlo) {
643 zflux(i,j,k) = hfx_z(i,j,0);
645 zflux(i,j,k) = qfx1_z(i,j,0);
650 zflux(i,j,k) = -rhoAlpha * GradCz;
654 if (!SurfLayer_on_zlo) {
655 hfx_z(i,j,k) = zflux(i,j,k) * explicit_fac;
658 if (!SurfLayer_on_zlo) {
659 qfx1_z(i,j,k) = zflux(i,j,k) * explicit_fac;
662 qfx2_z(i,j,k) = zflux(i,j,k);
672 ParallelFor(zbx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
674 zflux(i,j,k) *= explicit_fac;
685 ParallelFor(bx,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
687 Real xfluxbar_lo, yfluxbar_lo;
691 Real xfluxlo =
myhalf * ( xflux(i,j,k ) + xflux(i+1,j,k ) );
692 Real xfluxhi =
myhalf * ( xflux(i,j,k+1) + xflux(i+1,j,k+1) );
693 xfluxbar_lo =
Real(1.5)*xfluxlo -
myhalf*xfluxhi;
695 Real yfluxlo =
myhalf * ( yflux(i,j,k ) + yflux(i,j+1,k ) );
696 Real yfluxhi =
myhalf * ( yflux(i,j,k+1) + yflux(i,j+1,k+1) );
697 yfluxbar_lo =
Real(1.5)*yfluxlo -
myhalf*yfluxhi;
699 xfluxbar_lo =
fourth * ( xflux(i,j,k ) + xflux(i+1,j ,k )
700 + xflux(i,j,k-1) + xflux(i+1,j ,k-1) );
701 yfluxbar_lo =
fourth * ( yflux(i,j,k ) + yflux(i ,j+1,k )
702 + yflux(i,j,k-1) + yflux(i ,j+1,k-1) );
705 Real xfluxbar_hi, yfluxbar_hi;
709 Real xfluxlo =
myhalf * ( xflux(i,j,k-1) + xflux(i+1,j,k-1) );
710 Real xfluxhi =
myhalf * ( xflux(i,j,k ) + xflux(i+1,j,k ) );
711 xfluxbar_hi =
Real(1.5)*xfluxhi -
myhalf*xfluxlo;
713 Real yfluxlo =
myhalf * ( yflux(i,j,k-1) + yflux(i,j+1,k-1) );
714 Real yfluxhi =
myhalf * ( yflux(i,j,k ) + yflux(i,j+1,k ) );
715 yfluxbar_hi =
Real(1.5)*yfluxhi -
myhalf*yfluxlo;
717 xfluxbar_hi =
fourth * ( xflux(i,j,k+1) + xflux(i+1,j ,k+1)
718 + xflux(i,j,k ) + xflux(i+1,j ,k ) );
719 yfluxbar_hi =
fourth * ( yflux(i,j,k+1) + yflux(i ,j+1,k+1)
720 + yflux(i,j,k ) + yflux(i ,j+1,k ) );
725 if ( use_SurfLayer &&
731 zflux_lo = zflux(i,j,k )
732 - met_h_xi_lo * mf_mx(i,j,0) * xfluxbar_lo
733 - met_h_eta_lo * mf_my(i,j,0) * yfluxbar_lo;
735 Real zflux_hi = zflux(i,j,k+1)
736 - met_h_xi_hi * mf_mx(i,j,0) * xfluxbar_hi
737 - met_h_eta_hi * mf_my(i,j,0) * yfluxbar_hi;
739 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
740 Real stateContrib = ( xflux(i+1,j ,k ) * ax(i+1,j,k) / mf_uy(i+1,j,0)
741 -xflux(i ,j ,k ) * ax(i ,j,k) / mf_uy(i ,j,0) ) * dx_inv * mfsq
742 +( yflux(i ,j+1,k ) * ay(i,j+1,k) / mf_vx(i,j+1,0)
743 -yflux(i ,j ,k ) * ay(i,j ,k) / mf_vx(i,j ,0) ) * dy_inv * mfsq
744 +( zflux_hi - zflux_lo) * dz_inv;
746 stateContrib /= detJ(i,j,k);
748 cell_rhs(i,j,k,qty_index) -= stateContrib;
constexpr amrex::Real two
Definition: ERF_Constants.H:10
constexpr amrex::Real one
Definition: ERF_Constants.H:9
constexpr amrex::Real fourth
Definition: ERF_Constants.H:14
constexpr amrex::Real zero
Definition: ERF_Constants.H:8
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13
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:55
#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:57
#define RhoKE_comp
Definition: ERF_IndexDefines.H:38
ParallelFor(fab_box, [=] AMREX_GPU_DEVICE(int i, int j, int k) { qrcuten_arr(i, j, k)=Real(0);qscuten_arr(i, j, k)=Real(0);qicuten_arr(i, j, k)=Real(0);})
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:90
@ ext_dir
Definition: ERF_IndexDefines.H:249
@ ext_dir_prim
Definition: ERF_IndexDefines.H:252
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
Definition: ERF_PBLModels.H:416