20 template<
typename InterpType_H,
typename InterpType_V,
typename WallInterpType>
23 const amrex::Vector<amrex::Box>& bxy_grown,
24 const amrex::Vector<amrex::Box>& bxz_grown,
25 const amrex::Array4<const amrex::Real>& rho_u,
26 const amrex::Array4<const amrex::Real>& rho_v,
27 const amrex::Array4<const amrex::Real>& rho_w,
28 const amrex::Array4<const amrex::Real>& u,
29 const amrex::Array4<const amrex::Real>& v,
30 const amrex::Array4<const amrex::Real>&
w,
31 const amrex::FabType u_type,
32 const amrex::FabType v_type,
33 const amrex::FabType w_type,
34 const amrex::Array4<const amrex::EBCellFlag>& u_cflag,
35 const amrex::Array4<const amrex::Real>& u_afrac_x,
36 const amrex::Array4<const amrex::Real>& u_afrac_y,
37 const amrex::Array4<const amrex::Real>& u_afrac_z,
38 const amrex::Array4<const amrex::EBCellFlag>& v_cflag,
39 const amrex::Array4<const amrex::Real>& v_afrac_x,
40 const amrex::Array4<const amrex::Real>& v_afrac_y,
41 const amrex::Array4<const amrex::Real>& v_afrac_z,
42 const amrex::Array4<const amrex::EBCellFlag>& w_cflag,
43 const amrex::Array4<const amrex::Real>& w_afrac_x,
44 const amrex::Array4<const amrex::Real>& w_afrac_y,
45 const amrex::Array4<const amrex::Real>& w_afrac_z,
46 const amrex::Array4<const amrex::Real>& mf_uy_inv,
47 const amrex::Array4<const amrex::Real>& mf_vx_inv,
51 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_u_arr,
52 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_v_arr,
53 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_w_arr,
54 const int lo_z_face,
const int hi_z_face)
57 InterpType_H interp_u_horz(u, upw_frac_h); InterpType_V interp_u_vert(u, upw_frac_v);
58 InterpType_H interp_v_horz(v, upw_frac_h); InterpType_V interp_v_vert(v, upw_frac_v);
59 InterpType_H interp_w_horz(
w, upw_frac_h); InterpType_V interp_w_vert(
w, upw_frac_v);
62 const int ncells_u_horz = interp_u_horz.GetUpwindCellNumber();
63 const int ncells_u_vert = interp_u_vert.GetUpwindCellNumber();
64 const int ncells_v_horz = interp_v_horz.GetUpwindCellNumber();
65 const int ncells_v_vert = interp_v_vert.GetUpwindCellNumber();
66 const int ncells_w_horz = interp_w_horz.GetUpwindCellNumber();
67 const int ncells_w_vert = interp_w_vert.GetUpwindCellNumber();
75 UPWIND3 interp_u_UPW3_horz(u, upw_frac_h);
UPWIND3 interp_u_UPW3_vert(u, upw_frac_v);
76 UPWIND3 interp_v_UPW3_horz(v, upw_frac_h);
UPWIND3 interp_v_UPW3_vert(v, upw_frac_v);
77 UPWIND3 interp_w_UPW3_horz(
w, upw_frac_h);
UPWIND3 interp_w_UPW3_vert(
w, upw_frac_v);
80 UPWIND3 interp_u_UPW3_v(u, upw_frac_v);
81 UPWIND3 interp_v_UPW3_v(v, upw_frac_v);
82 UPWIND3 interp_w_UPW3_v(
w, upw_frac_v);
84 bool u_is_regular = (u_type == amrex::FabType::regular);
85 bool v_is_regular = (v_type == amrex::FabType::regular);
86 bool w_is_regular = (w_type == amrex::FabType::regular);
88 bool u_is_singlevalued = (u_type == amrex::FabType::singlevalued);
89 bool v_is_singlevalued = (v_type == amrex::FabType::singlevalued);
90 bool w_is_singlevalued = (w_type == amrex::FabType::singlevalued);
98 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
100 bool not_covered = u_is_regular || (u_is_singlevalued && u_afrac_x(i,j,k) >
zero);
104 amrex::Real rho_u_avg =
myhalf * (rho_u(i-1,j,k) * mf_uy_inv(i-1,j,0) + rho_u(i,j,k) * mf_uy_inv(i,j,0));
110 for (
int ii=0; ii<ncells_u_horz; ++ii) {
111 if (u_cflag(i-ii-1,j,k).isCovered()) {
117 else if (rho_u_avg<
zero)
119 for (
int ii=0; ii<ncells_u_horz; ++ii) {
120 if (u_cflag(i+ii,j,k).isCovered()) {
130 if (icell==ncells_u_horz) {
131 interp_u_horz.InterpolateInX(i,j,k,0,interpx,rho_u_avg);
135 }
else if (icell==2) {
139 flx_u_arr[0](i,j,k) = rho_u_avg * interpx;
143 flx_u_arr[0](i,j,k) =
zero;
147 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
149 bool not_covered = u_is_regular || (u_is_singlevalued && u_afrac_y(i,j,k) >
zero);
153 amrex::Real rho_v_avg =
myhalf * (rho_v(i,j,k) * mf_vx_inv(i,j,0) + rho_v(i-1,j,k) * mf_vx_inv(i-1,j,0));
159 for (
int jj=0; jj<ncells_u_horz; ++jj) {
160 if (u_cflag(i,j-jj-1,k).isCovered()) {
166 else if (rho_v_avg<
zero)
168 for (
int jj=0; jj<ncells_u_horz; ++jj) {
169 if (u_cflag(i,j+jj,k).isCovered()) {
179 if (jcell==ncells_u_horz) {
180 interp_u_horz.InterpolateInY(i,j,k,0,interpy,rho_v_avg);
184 }
else if (jcell==2) {
188 flx_u_arr[1](i,j,k) = rho_v_avg * interpy;
192 flx_u_arr[1](i,j,k) =
zero;
196 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
198 bool not_covered = u_is_regular || (u_is_singlevalued && u_afrac_z(i,j,k) >
zero);
208 for (
int kk=0; kk<ncells_u_vert; ++kk) {
209 if (u_cflag(i,j,k-kk-1).isCovered()) {
215 else if (rho_w_avg<
zero)
217 for (
int kk=0; kk<ncells_u_vert; ++kk) {
218 if (u_cflag(i,j,k+kk).isCovered()) {
228 if (kcell==ncells_u_vert) {
229 interp_u_vert.InterpolateInZ(i,j,k,0,interpz,rho_w_avg);
233 }
else if (kcell==2) {
237 flx_u_arr[2](i,j,k) = rho_w_avg * interpz;
241 flx_u_arr[2](i,j,k) =
zero;
251 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
253 bool not_covered = v_is_regular || (v_is_singlevalued && v_afrac_x(i,j,k) >
zero);
257 amrex::Real rho_u_avg =
myhalf * (rho_u(i,j,k) * mf_uy_inv(i,j,0) + rho_u(i,j-1,k) * mf_uy_inv(i,j-1,0));
263 for (
int ii=0; ii<ncells_v_horz; ++ii) {
264 if (v_cflag(i-ii-1,j,k).isCovered()) {
270 else if (rho_u_avg<
zero)
272 for (
int ii=0; ii<ncells_v_horz; ++ii) {
273 if (v_cflag(i+ii,j,k).isCovered()) {
283 if (icell==ncells_v_horz) {
284 interp_v_horz.InterpolateInX(i,j,k,0,interpx,rho_u_avg);
288 }
else if (icell==2) {
292 flx_v_arr[0](i,j,k) = rho_u_avg * interpx;
296 flx_v_arr[0](i,j,k) =
zero;
300 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
302 bool not_covered = v_is_regular || (v_is_singlevalued && v_afrac_y(i,j,k) >
zero);
306 amrex::Real rho_v_avg =
myhalf * (rho_v(i,j,k) * mf_vx_inv(i,j,0) + rho_v(i,j-1,k) * mf_vx_inv(i,j-1,0));
312 for (
int jj=0; jj<ncells_v_horz; ++jj) {
313 if (v_cflag(i,j-jj-1,k).isCovered()) {
319 else if (rho_v_avg<
zero)
321 for (
int jj=0; jj<ncells_v_horz; ++jj) {
322 if (v_cflag(i,j+jj,k).isCovered()) {
332 if (jcell==ncells_v_horz) {
333 interp_v_horz.InterpolateInY(i,j,k,0,interpy,rho_v_avg);
337 }
else if (jcell==2) {
341 flx_v_arr[1](i,j,k) = rho_v_avg * interpy;
345 flx_v_arr[1](i,j,k) =
zero;
349 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
351 bool not_covered = v_is_regular || (v_is_singlevalued && v_afrac_z(i,j,k) >
zero);
361 for (
int kk=0; kk<ncells_v_vert; ++kk) {
362 if (v_cflag(i,j,k-kk-1).isCovered()) {
368 else if (rho_w_avg<
zero)
370 for (
int kk=0; kk<ncells_v_vert; ++kk) {
371 if (v_cflag(i,j,k+kk).isCovered()) {
381 if (kcell==ncells_v_vert) {
382 interp_v_vert.InterpolateInZ(i,j,k,0,interpz,rho_w_avg);
386 }
else if (kcell==2) {
390 flx_v_arr[2](i,j,k) = rho_w_avg * interpz;
394 flx_v_arr[2](i,j,k) =
zero;
404 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
406 bool not_covered = w_is_regular || (w_is_singlevalued && w_afrac_x(i,j,k) >
zero);
410 amrex::Real rho_u_avg =
myhalf * (rho_u(i,j,k) + rho_u(i,j,k-1)) * mf_uy_inv(i,j,0);
416 for (
int ii=0; ii<ncells_w_horz; ++ii) {
417 if (w_cflag(i-ii-1,j,k).isCovered()) {
423 else if (rho_u_avg<
zero)
425 for (
int ii=0; ii<ncells_w_horz; ++ii) {
426 if (w_cflag(i+ii,j,k).isCovered()) {
436 if (icell==ncells_w_horz) {
437 interp_w_horz.InterpolateInX(i,j,k,0,interpx,rho_u_avg);
441 }
else if (icell==2) {
445 flx_w_arr[0](i,j,k) = rho_u_avg * interpx;
449 flx_w_arr[0](i,j,k) =
zero;
453 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
455 bool not_covered = w_is_regular || (w_is_singlevalued && w_afrac_y(i,j,k) >
zero);
459 amrex::Real rho_v_avg =
myhalf * (rho_v(i,j,k) + rho_v(i,j,k-1)) * mf_vx_inv(i,j,0);
465 for (
int jj=0; jj<ncells_w_horz; ++jj) {
466 if (w_cflag(i,j-jj-1,k).isCovered()) {
472 else if (rho_v_avg<
zero)
474 for (
int jj=0; jj<ncells_w_horz; ++jj) {
475 if (w_cflag(i,j+jj,k).isCovered()) {
485 if (jcell==ncells_w_horz) {
486 interp_w_horz.InterpolateInY(i,j,k,0,interpy,rho_v_avg);
490 }
else if (jcell==2) {
494 flx_w_arr[1](i,j,k) = rho_v_avg * interpy;
498 flx_w_arr[1](i,j,k) =
zero;
502 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
504 bool not_covered = w_is_regular || (w_is_singlevalued && w_afrac_z(i,j,k) >
zero);
508 if (k==lo_z_face || k==hi_z_face+1) {
510 flx_w_arr[2](i,j,k) = rho_w(i,j,k) *
w(i,j,k);
519 for (
int kk=0; kk<ncells_w_vert; ++kk) {
520 if (w_cflag(i,j,k-kk-1).isCovered()) {
526 else if (rho_w_avg<
zero)
528 for (
int kk=0; kk<ncells_w_vert; ++kk) {
529 if (w_cflag(i,j,k+kk).isCovered()) {
540 bool wall_cen4 =
false;
541 if (k == hi_z_face || k == lo_z_face+1) {
542 kcell=std::min(kcell,1);
543 }
else if (k == hi_z_face-1 || k == lo_z_face+2 ) {
544 wall_cen4 = (kcell > 2);
545 kcell=std::min(kcell,2);
551 if (kcell==ncells_w_vert) {
552 interp_w_vert.InterpolateInZ(i,j,k,0,interpz,rho_w_avg);
553 }
else if (wall_cen4) {
558 }
else if (kcell==2) {
562 flx_w_arr[2](i,j,k) = rho_w_avg * interpz;
567 flx_w_arr[2](i,j,k) =
zero;
577 template<
typename InterpType_H>
580 const amrex::Vector<amrex::Box>& bxy_grown,
581 const amrex::Vector<amrex::Box>& bxz_grown,
582 const amrex::Array4<const amrex::Real>& rho_u,
583 const amrex::Array4<const amrex::Real>& rho_v,
584 const amrex::Array4<const amrex::Real>& rho_w,
585 const amrex::Array4<const amrex::Real>& u,
586 const amrex::Array4<const amrex::Real>& v,
587 const amrex::Array4<const amrex::Real>&
w,
588 const amrex::FabType u_type,
589 const amrex::FabType v_type,
590 const amrex::FabType w_type,
591 const amrex::Array4<const amrex::EBCellFlag>& u_cflag,
592 const amrex::Array4<const amrex::Real>& u_afrac_x,
593 const amrex::Array4<const amrex::Real>& u_afrac_y,
594 const amrex::Array4<const amrex::Real>& u_afrac_z,
595 const amrex::Array4<const amrex::EBCellFlag>& v_cflag,
596 const amrex::Array4<const amrex::Real>& v_afrac_x,
597 const amrex::Array4<const amrex::Real>& v_afrac_y,
598 const amrex::Array4<const amrex::Real>& v_afrac_z,
599 const amrex::Array4<const amrex::EBCellFlag>& w_cflag,
600 const amrex::Array4<const amrex::Real>& w_afrac_x,
601 const amrex::Array4<const amrex::Real>& w_afrac_y,
602 const amrex::Array4<const amrex::Real>& w_afrac_z,
603 const amrex::Array4<const amrex::Real>& mf_uy_inv,
604 const amrex::Array4<const amrex::Real>& mf_vx_inv,
608 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_u_arr,
609 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_v_arr,
610 amrex::GpuArray<amrex::Array4<amrex::Real>, AMREX_SPACEDIM>& flx_w_arr,
611 const int lo_z_face,
const int hi_z_face)
614 EBAdvectionSrcForMomWrapper<InterpType_H,CENTERED2,UPWINDALL>(
615 bxx_grown, bxy_grown, bxz_grown,
616 rho_u, rho_v, rho_w, u, v,
w,
617 u_type, v_type, w_type,
618 u_cflag, u_afrac_x, u_afrac_y, u_afrac_z,
619 v_cflag, v_afrac_x, v_afrac_y, v_afrac_z,
620 w_cflag, w_afrac_x, w_afrac_y, w_afrac_z,
621 mf_uy_inv, mf_vx_inv,
622 upw_frac_h, upw_frac_v, vert_adv_type,
623 flx_u_arr, flx_v_arr, flx_w_arr,
624 lo_z_face, hi_z_face);
626 EBAdvectionSrcForMomWrapper<InterpType_H,UPWIND3,UPWINDALL>(
627 bxx_grown, bxy_grown, bxz_grown,
628 rho_u, rho_v, rho_w, u, v,
w,
629 u_type, v_type, w_type,
630 u_cflag, u_afrac_x, u_afrac_y, u_afrac_z,
631 v_cflag, v_afrac_x, v_afrac_y, v_afrac_z,
632 w_cflag, w_afrac_x, w_afrac_y, w_afrac_z,
633 mf_uy_inv, mf_vx_inv,
634 upw_frac_h, upw_frac_v, vert_adv_type,
635 flx_u_arr, flx_v_arr, flx_w_arr,
636 lo_z_face, hi_z_face);
638 EBAdvectionSrcForMomWrapper<InterpType_H,CENTERED4,UPWINDALL>(
639 bxx_grown, bxy_grown, bxz_grown,
640 rho_u, rho_v, rho_w, u, v,
w,
641 u_type, v_type, w_type,
642 u_cflag, u_afrac_x, u_afrac_y, u_afrac_z,
643 v_cflag, v_afrac_x, v_afrac_y, v_afrac_z,
644 w_cflag, w_afrac_x, w_afrac_y, w_afrac_z,
645 mf_uy_inv, mf_vx_inv,
646 upw_frac_h, upw_frac_v, vert_adv_type,
647 flx_u_arr, flx_v_arr, flx_w_arr,
648 lo_z_face, hi_z_face);
650 EBAdvectionSrcForMomWrapper<InterpType_H,UPWIND5,UPWINDALL>(
651 bxx_grown, bxy_grown, bxz_grown,
652 rho_u, rho_v, rho_w, u, v,
w,
653 u_type, v_type, w_type,
654 u_cflag, u_afrac_x, u_afrac_y, u_afrac_z,
655 v_cflag, v_afrac_x, v_afrac_y, v_afrac_z,
656 w_cflag, w_afrac_x, w_afrac_y, w_afrac_z,
657 mf_uy_inv, mf_vx_inv,
658 upw_frac_h, upw_frac_v, vert_adv_type,
659 flx_u_arr, flx_v_arr, flx_w_arr,
660 lo_z_face, hi_z_face);
662 EBAdvectionSrcForMomWrapper<InterpType_H,CENTERED6,UPWINDALL>(
663 bxx_grown, bxy_grown, bxz_grown,
664 rho_u, rho_v, rho_w, u, v,
w,
665 u_type, v_type, w_type,
666 u_cflag, u_afrac_x, u_afrac_y, u_afrac_z,
667 v_cflag, v_afrac_x, v_afrac_y, v_afrac_z,
668 w_cflag, w_afrac_x, w_afrac_y, w_afrac_z,
669 mf_uy_inv, mf_vx_inv,
670 upw_frac_h, upw_frac_v, vert_adv_type,
671 flx_u_arr, flx_v_arr, flx_w_arr,
672 lo_z_face, hi_z_face);
void EBAdvectionSrcForMomVert(const amrex::Vector< amrex::Box > &bxx_grown, const amrex::Vector< amrex::Box > &bxy_grown, const amrex::Vector< amrex::Box > &bxz_grown, const amrex::Array4< const amrex::Real > &rho_u, const amrex::Array4< const amrex::Real > &rho_v, const amrex::Array4< const amrex::Real > &rho_w, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const amrex::FabType u_type, const amrex::FabType v_type, const amrex::FabType w_type, const amrex::Array4< const amrex::EBCellFlag > &u_cflag, const amrex::Array4< const amrex::Real > &u_afrac_x, const amrex::Array4< const amrex::Real > &u_afrac_y, const amrex::Array4< const amrex::Real > &u_afrac_z, const amrex::Array4< const amrex::EBCellFlag > &v_cflag, const amrex::Array4< const amrex::Real > &v_afrac_x, const amrex::Array4< const amrex::Real > &v_afrac_y, const amrex::Array4< const amrex::Real > &v_afrac_z, const amrex::Array4< const amrex::EBCellFlag > &w_cflag, const amrex::Array4< const amrex::Real > &w_afrac_x, const amrex::Array4< const amrex::Real > &w_afrac_y, const amrex::Array4< const amrex::Real > &w_afrac_z, const amrex::Array4< const amrex::Real > &mf_uy_inv, const amrex::Array4< const amrex::Real > &mf_vx_inv, const amrex::Real upw_frac_h, const amrex::Real upw_frac_v, const AdvType vert_adv_type, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_u_arr, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_v_arr, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_w_arr, const int lo_z_face, const int hi_z_face)
Dispatch EB momentum flux construction on the vertical advection scheme.
Definition: ERF_EBAdvectionSrcForMom.H:579
void EBAdvectionSrcForMomWrapper(const amrex::Vector< amrex::Box > &bxx_grown, const amrex::Vector< amrex::Box > &bxy_grown, const amrex::Vector< amrex::Box > &bxz_grown, const amrex::Array4< const amrex::Real > &rho_u, const amrex::Array4< const amrex::Real > &rho_v, const amrex::Array4< const amrex::Real > &rho_w, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const amrex::FabType u_type, const amrex::FabType v_type, const amrex::FabType w_type, const amrex::Array4< const amrex::EBCellFlag > &u_cflag, const amrex::Array4< const amrex::Real > &u_afrac_x, const amrex::Array4< const amrex::Real > &u_afrac_y, const amrex::Array4< const amrex::Real > &u_afrac_z, const amrex::Array4< const amrex::EBCellFlag > &v_cflag, const amrex::Array4< const amrex::Real > &v_afrac_x, const amrex::Array4< const amrex::Real > &v_afrac_y, const amrex::Array4< const amrex::Real > &v_afrac_z, const amrex::Array4< const amrex::EBCellFlag > &w_cflag, const amrex::Array4< const amrex::Real > &w_afrac_x, const amrex::Array4< const amrex::Real > &w_afrac_y, const amrex::Array4< const amrex::Real > &w_afrac_z, const amrex::Array4< const amrex::Real > &mf_uy_inv, const amrex::Array4< const amrex::Real > &mf_vx_inv, const amrex::Real upw_frac_h, const amrex::Real upw_frac_v, const AdvType, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_u_arr, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_v_arr, amrex::GpuArray< amrex::Array4< amrex::Real >, AMREX_SPACEDIM > &flx_w_arr, const int lo_z_face, const int hi_z_face)
Build EB momentum fluxes with selected horizontal and vertical interpolation.
Definition: ERF_EBAdvectionSrcForMom.H:22
AdvType
Definition: ERF_IndexDefines.H:352
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);})
constexpr amrex::Real zero
Definition: ERF_NumericalConstants.H:36
constexpr amrex::Real myhalf
Definition: ERF_NumericalConstants.H:41
Real w
Definition: ERF_Plotfile2DInterpolator.cpp:23
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_ASSERT_WITH_MESSAGE(wbar_cutoff_min > wbar_cutoff_max, "ERROR: wbar_cutoff_min < wbar_cutoff_max")
Definition: ERF_Interpolation_UPW.H:10
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:38
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:56
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:20
Definition: ERF_Interpolation_UPW.H:335
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:385
Definition: ERF_Interpolation_UPW.H:95
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:159
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:133
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:107