1 #ifndef AMREX_EB_MULTIFAB_UTIL_2D_C_H_
2 #define AMREX_EB_MULTIFAB_UTIL_2D_C_H_
3 #include <AMReX_Config.H>
12 if (
f(i-1,j-1,k).isCovered() &&
f(i ,j-1,k).isCovered() &&
13 f(i-1,j ,k).isCovered() &&
f(i ,j ,k).isCovered())
23 if (
f(i-1,j-1,k).isCovered() &&
f(i ,j-1,k).isCovered() &&
24 f(i-1,j ,k).isCovered() &&
f(i ,j ,k).isCovered())
26 d(i,j,k,n+icomp) = v[n];
35 Dim3 const& ratio,
int ncomp)
37 for (
int n = 0; n < ncomp; ++n) {
41 for (
int jj = j*ratio.
y; jj < (j+1)*ratio.
y; ++jj) {
42 for (
int ii = i*ratio.
x; ii < (i+1)*ratio.
x; ++ii) {
43 Real tmp = fv(ii,jj,kk)*vfrc(ii,jj,kk);
44 c +=
fine(ii,jj,kk,n+fcomp)*tmp;
47 if (cv > Real(1.e-30)) {
48 crse(i,j,k,n+ccomp) = c/cv;
50 crse(i,j,k,n+ccomp) =
fine(i*ratio.
x,j*ratio.
y,kk,n+fcomp);
60 Dim3 const& ratio,
int ncomp)
62 for (
int n = 0; n < ncomp; ++n) {
66 for (
int jj = j*ratio.
y; jj < (j+1)*ratio.
y; ++jj) {
67 for (
int ii = i*ratio.
x; ii < (i+1)*ratio.
x; ++ii) {
68 Real tmp = vfrc(ii,jj,kk);
69 c +=
fine(ii,jj,kk,n+fcomp)*tmp;
72 if (cv > Real(1.e-30)) {
73 crse(i,j,k,n+ccomp) = c/cv;
75 crse(i,j,k,n+ccomp) =
fine(i*ratio.
x,j*ratio.
y,kk,n+fcomp);
85 Dim3 const& ratio,
int ncomp)
89 for (
int n = 0; n < ncomp; ++n) {
92 for (
int jj = j*ratio.
y; jj < (j+1)*ratio.
y; ++jj) {
93 Real tmp = area(ii,jj,kk);
94 c += tmp*
fine(ii,jj,kk,n+fcomp);
97 if (a > Real(1.e-30)) {
98 crse(i,j,k,n+ccomp) = c/a;
100 crse(i,j,k,n+ccomp) =
fine(ii,j*ratio.
y,kk,n+fcomp);
110 Dim3 const& ratio,
int ncomp)
113 constexpr
int kk = 0;
114 for (
int n = 0; n < ncomp; ++n) {
117 for (
int ii = i*ratio.
x; ii < (i+1)*ratio.
x; ++ii) {
118 Real tmp = area(ii,jj,kk);
119 c += tmp*
fine(ii,jj,kk,n+fcomp);
122 if (a > Real(1.e-30)) {
123 crse(i,j,k,n+ccomp) = c/a;
125 crse(i,j,k,n+ccomp) =
fine(i*ratio.
x,jj,kk,n+fcomp);
135 Dim3 const& ratio,
int ncomp)
137 for (
int n = 0; n < ncomp; ++n) {
140 constexpr
int kk = 0;
141 for (
int jj = j*ratio.
y; jj < (j+1)*ratio.
y; ++jj) {
142 for (
int ii = i*ratio.
x; ii < (i+1)*ratio.
x; ++ii) {
143 Real tmp = ba(ii,jj,kk);
144 c +=
fine(ii,jj,kk,n+fcomp)*tmp;
147 if (cv > Real(1.e-30)) {
148 crse(i,j,k,n+ccomp) = c/cv;
150 crse(i,j,k,n+ccomp) = 0.0_rt;
162 bool already_on_centroids)
164 if (flag(i,j,k).isCovered())
166 divu(i,j,k,n) = 0.0_rt;
168 else if (flag(i,j,k).isRegular())
170 divu(i,j,k,n) = dxinv[0] * (u(i+1,j,k,n)-u(i,j,k,n))
171 + dxinv[1] * (v(i,j+1,k,n)-v(i,j,k,n));
173 else if (already_on_centroids)
175 divu(i,j,k,n) = (1.0_rt/vfrc(i,j,k)) *
176 ( dxinv[0] * (apx(i+1,j,k)*u(i+1,j,k,n)-apx(i,j,k)*u(i,j,k,n))
177 + dxinv[1] * (apy(i,j+1,k)*v(i,j+1,k,n)-apy(i,j,k)*v(i,j,k,n)) );
181 Real fxm = u(i,j,k,n);
182 if (apx(i,j,k) != 0.0_rt && apx(i,j,k) != 1.0_rt) {
183 int jj = j +
static_cast<int>(std::copysign(1.0_rt,fcx(i,j,k)));
184 Real fracy = (ccm(i-1,jj,k) || ccm(i,jj,k)) ?
std::abs(fcx(i,j,k)) : 0.0_rt;
185 fxm = (1.0_rt-fracy)*fxm + fracy*u(i,jj,k,n);
188 Real fxp = u(i+1,j,k,n);
189 if (apx(i+1,j,k) != 0.0_rt && apx(i+1,j,k) != 1.0_rt) {
190 int jj = j +
static_cast<int>(std::copysign(1.0_rt,fcx(i+1,j,k)));
191 Real fracy = (ccm(i,jj,k) || ccm(i+1,jj,k)) ?
std::abs(fcx(i+1,j,k)) : 0.0_rt;
192 fxp = (1.0_rt-fracy)*fxp + fracy*u(i+1,jj,k,n);
195 Real fym = v(i,j,k,n);
196 if (apy(i,j,k) != 0.0_rt && apy(i,j,k) != 1.0_rt) {
197 int ii = i +
static_cast<int>(std::copysign(1.0_rt,fcy(i,j,k)));
198 Real fracx = (ccm(ii,j-1,k) || ccm(ii,j,k)) ?
std::abs(fcy(i,j,k)) : 0.0_rt;
199 fym = (1.0_rt-fracx)*fym + fracx*v(ii,j,k,n);
202 Real fyp = v(i,j+1,k,n);
203 if (apy(i,j+1,k) != 0.0_rt && apy(i,j+1,k) != 1.0_rt) {
204 int ii = i +
static_cast<int>(std::copysign(1.0_rt,fcy(i,j+1,k)));
205 Real fracx = (ccm(ii,j,k) || ccm(ii,j+1,k)) ?
std::abs(fcy(i,j+1,k)) : 0.0_rt;
206 fyp = (1.0_rt-fracx)*fyp + fracx*v(ii,j+1,k,n);
209 divu(i,j,k,n) = (1.0_rt/vfrc(i,j,k)) *
210 ( dxinv[0] * (apx(i+1,j,k)*fxp-apx(i,j,k)*fxm)
211 + dxinv[1] * (apy(i,j+1,k)*fyp-apy(i,j,k)*fym) );
221 if (flag(i,j,k).isCovered()) {
222 cc(i,j,k,n+0) = 0.0_rt;
223 cc(i,j,k,n+1) = 0.0_rt;
225 if (ax(i,j,k) == 0.0_rt) {
226 cc(i,j,k,n+0) = fx(i+1,j,k);
227 }
else if (ax(i+1,j,k) == 0.0_rt) {
228 cc(i,j,k,n+0) = fx(i,j,k);
230 cc(i,j,k,n+0) = 0.5_rt * (fx(i,j,k) + fx(i+1,j,k));
233 if (ay(i,j,k) == 0.0_rt) {
234 cc(i,j,k,n+1) = fy(i,j+1,k);
235 }
else if (ay(i,j+1,k) == 0.0_rt) {
236 cc(i,j,k,n+1) = fy(i,j,k);
238 cc(i,j,k,n+1) = 0.5_rt * (fy(i,j,k) + fy(i,j+1,k));
251 amrex::Loop(box, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
253 if (flag(i,j,k).isCovered())
255 phicent(i,j,k,n) = phicc(i,j,k,n);
259 if (flag(i,j,k).isRegular())
261 phicent(i,j,k,n) = phicc(i,j,k,n);
265 Real gx = cent(i,j,k,0);
266 Real gy = cent(i,j,k,1);
267 int ii = (gx < 0.0_rt) ? i - 1 : i + 1;
268 int jj = (gy < 0.0_rt) ? j - 1 : j + 1;
273 phicent(i,j,k,n) = ( 1.0_rt - gx - gy + gxy ) * phicc(i ,j ,k ,n)
274 + ( gy - gxy ) * phicc(i ,jj,k ,n)
275 + ( gx - gxy ) * phicc(ii,j ,k ,n)
276 + ( gxy ) * phicc(ii,jj,k ,n);
290 const BCRec* bc) noexcept
294 amrex::Loop(ubx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
298 edg_x(i,j,k,n) = 1e40;
302 if (apx(i,j,k) == Real(1.))
304 if ( (i == domlo.
x) && (bc[n].lo(0) == BCType::ext_dir) )
306 edg_x(i,j,k,n) = phi(domlo.
x-1,j,k,n);
308 else if ( (i == domhi.
x+1) && (bc[n].hi(0) == BCType::ext_dir) )
310 edg_x(i,j,k,n) = phi(domhi.
x+1,j,k,n);
314 edg_x(i,j,k,n) = 0.5_rt * ( phi(i,j,k,n) + phi(i-1,j,k,n) );
320 int jj = (fcx(i,j,k) < 0.0_rt) ? j - 1 : j + 1;
324 edg_x(i,j,k,n) = ( 1.0_rt - gx - gy + gxy ) * phi(i ,j ,k ,n)
325 + ( gy - gxy ) * phi(i ,jj,k ,n)
326 + ( gx - gxy ) * phi(ii,j ,k ,n)
327 + ( gxy ) * phi(ii,jj,k ,n);
341 const BCRec* bc) noexcept
345 amrex::Loop(vbx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
349 edg_y(i,j,k,n) = 1e40;
353 if (apy(i,j,k) == Real(1.))
355 if ( (j == domlo.
y) && (bc[n].lo(1) == BCType::ext_dir) )
357 edg_y(i,j,k,n) = phi(i,domlo.
y-1,k,n);
359 else if ( (j == domhi.
y+1) && (bc[n].hi(1) == BCType::ext_dir) )
361 edg_y(i,j,k,n) = phi(i,domhi.
y+1,k,n);
365 edg_y(i,j,k,n) = 0.5_rt * (phi(i,j ,k,n) + phi(i,j-1,k,n));
370 int ii = (fcy(i,j,k) < 0.0_rt) ? i - 1 : i + 1;
375 edg_y(i,j,k,n) = ( 1.0_rt - gx - gy + gxy ) * phi(i ,j ,k ,n)
376 + ( gy - gxy ) * phi(i ,jj,k ,n)
377 + ( gx - gxy ) * phi(ii,j ,k ,n)
378 + ( gxy ) * phi(ii,jj,k ,n);
394 const BCRec* bc) noexcept
398 amrex::Loop(ubx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
402 edg_x(i,j,k,n) = 1e40;
404 else if ( (i == domlo.
x) && (bc[n].lo(0) == BCType::ext_dir) )
406 edg_x(i,j,k,n) = phi(domlo.
x-1,j,k,n);
408 else if ( (i == domhi.
x+1) && (bc[n].hi(0) == BCType::ext_dir) )
410 edg_x(i,j,k,n) = phi(domhi.
x+1,j,k,n);
412 else if ( apx(i,j,k) == Real(1.) && (cvol(i,j,k) == Real(1.) && cvol(i-1,j,k) == Real(1.)) )
414 edg_x(i,j,k,n) = 0.5_rt * ( phi(i,j,k,n) + phi(i-1,j,k,n) );
416 else if (apx(i,j,k) == Real(1.) && (
std::abs(ccent(i,j,k,1)-ccent(i-1,j,k,1)) < Real(1.e-8)) )
418 Real d0 = 0.5_rt + ccent(i ,j,k,0);
419 Real d1 = 0.5_rt - ccent(i-1,j,k,0);
420 Real a0 = d1 / (d0 + d1);
421 Real a1 = d0 / (d0 + d1);
422 edg_x(i,j,k,n) = a0*phi(i,j,k,n) + a1*phi(i-1,j,k,n);
428 if (
std::abs(fcx(i,j,k)) > Real(1.e-8)) {
429 jj = (fcx(i,j,k) < 0.0_rt) ? j - 1 : j + 1;
434 Real min_vol_lo =
std::min(cvol(i,j-1,k),cvol(ii,j-1,k));
435 Real min_vol_hi =
std::min(cvol(i,j+1,k),cvol(ii,j+1,k));
436 jj = (min_vol_lo > min_vol_hi) ? j - 1 : j + 1;
439 Real d0 = 0.5_rt + ccent( i,j,k,0);
440 Real d1 = 0.5_rt - ccent(ii,j,k,0);
442 Real d0_jj = 0.5_rt + ccent( i,jj,k,0);
443 Real d1_jj = 0.5_rt - ccent(ii,jj,k,0);
445 Real a0 = d1 / (d0 + d1);
446 Real a1 = d0 / (d0 + d1);
448 Real a0_jj = d1_jj / (d0_jj + d1_jj);
449 Real a1_jj = d0_jj / (d0_jj + d1_jj);
451 Real phi01 = a0 * phi(i, j,k,n) + a1 * phi(ii, j,k,n);
452 Real y01 = a0 * ccent(i, j,k,1) + a1 * ccent(ii, j,k,1);
454 Real phi01_jj = a0_jj * phi(i,jj,k,n) + a1_jj * phi(ii,jj,k,n);
455 Real y01_jj = a0_jj * ccent(i,jj,k,1) + a1_jj * ccent(ii,jj,k,1);
457 edg_x(i,j,k,n) = ( ( fcx(i,j,k) - y01 ) * phi01_jj +
458 (Real(1.) - fcx(i,j,k) + y01_jj) * phi01 ) / (Real(1.) - y01 + y01_jj);
473 const BCRec* bc) noexcept
477 amrex::Loop(vbx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
481 edg_y(i,j,k,n) = 1e40;
483 else if ( (j == domlo.
y) && (bc[n].lo(1) == BCType::ext_dir) )
485 edg_y(i,j,k,n) = phi(i,domlo.
y-1,k,n);
487 else if ( (j == domhi.
y+1) && (bc[n].hi(1) == BCType::ext_dir) )
489 edg_y(i,j,k,n) = phi(i,domhi.
y+1,k,n);
491 else if (apy(i,j,k) == Real(1.) && cvol(i,j,k) == Real(1.) && cvol(i,j-1,k) == Real(1.))
493 edg_y(i,j,k,n) = 0.5_rt * (phi(i,j ,k,n) + phi(i,j-1,k,n));
495 else if (apy(i,j,k) == Real(1.) && (
std::abs(ccent(i,j,k,0)-ccent(i,j-1,k,0)) < Real(1.e-8)) )
497 Real d0 = 0.5_rt + ccent(i,j ,k,1);
498 Real d1 = 0.5_rt - ccent(i,j-1,k,1);
499 Real a0 = d1 / (d0 + d1);
500 Real a1 = d0 / (d0 + d1);
501 edg_y(i,j,k,n) = a0*phi(i,j,k,n) + a1*phi(i,j-1,k,n);
510 if (
std::abs(fcy(i,j,k)) > Real(1.e-8)) {
511 ii = (fcy(i,j,k) < 0.0_rt) ? i - 1 : i + 1;
515 Real min_vol_lo =
std::min(cvol(i-1,j,k),cvol(i-1,jj,k));
516 Real min_vol_hi =
std::min(cvol(i+1,j,k),cvol(i+1,jj,k));
517 ii = (min_vol_lo > min_vol_hi) ? i - 1 : i + 1;
520 Real d0 = 0.5_rt + ccent(i, j,k,1);
521 Real d1 = 0.5_rt - ccent(i,jj,k,1);
523 Real d0_ii = 0.5_rt + ccent(ii, j,k,0);
524 Real d1_ii = 0.5_rt - ccent(ii,jj,k,0);
526 Real a0 = d1 / (d0 + d1);
527 Real a1 = d0 / (d0 + d1);
529 Real a0_ii = d1_ii / (d0_ii + d1_ii);
530 Real a1_ii = d0_ii / (d0_ii + d1_ii);
532 Real phi01 = a0 * phi( i,j,k,n) + a1 * phi( i,jj,k,n);
533 Real x01 = a0 * ccent( i,j,k,0) + a1 * ccent( i,jj,k,0);
535 Real phi01_ii = a0_ii * phi(ii,j,k,n) + a1_ii * phi(ii,jj,k,n);
536 Real x01_ii = a0_ii * ccent(ii,j,k,0) + a1_ii * ccent(ii,jj,k,0);
538 edg_y(i,j,k,n) = ( ( fcy(i,j,k) - x01 ) * phi01_ii +
539 (Real(1.) - fcy(i,j,k) + x01_ii) * phi01 ) / (Real(1.) - x01 + x01_ii);
550 const BCRec* bc) noexcept
554 amrex::Loop(ubx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
556 if ( (i == domlo.
x) && (bc[n].lo(0) == BCType::ext_dir) )
558 edg_x(i,j,k,n) = phi(domlo.x-1,j,k,n);
560 else if ( (i == domhi.
x+1) && (bc[n].hi(0) == BCType::ext_dir) )
562 edg_x(i,j,k,n) = phi(domhi.x+1,j,k,n);
566 edg_x(i,j,k,n) = 0.5_rt * ( phi(i,j,k,n) + phi(i-1,j,k,n) );
577 const BCRec* bc) noexcept
581 amrex::Loop(vbx, ncomp, [=] (
int i,
int j,
int k,
int n) noexcept
583 if ( (j == domlo.
y) && (bc[n].lo(1) == BCType::ext_dir) )
585 edg_y(i,j,k,n) = phi(i,domlo.y-1,k,n);
587 else if ( (j == domhi.
y+1) && (bc[n].hi(1) == BCType::ext_dir) )
589 edg_y(i,j,k,n) = phi(i,domhi.y+1,k,n);
593 edg_y(i,j,k,n) = 0.5_rt * (phi(i,j ,k,n) + phi(i,j-1,k,n));
604 if (flag(i,j,k).isSingleValued())
606 Real Ueb_dot_n = vel_eb(i,j,k,0)*bnorm(i,j,k,0)
607 + vel_eb(i,j,k,1)*bnorm(i,j,k,1);
609 divu(i,j,k,n) += Ueb_dot_n * barea(i,j,k) * dxinv[0] / vfrc(i,j,k);
#define AMREX_FORCE_INLINE
Definition: AMReX_Extension.H:119
#define AMREX_RESTRICT
Definition: AMReX_Extension.H:37
#define AMREX_GPU_HOST_DEVICE
Definition: AMReX_GpuQualifiers.H:20
Array4< Real > fine
Definition: AMReX_InterpFaceRegister.cpp:90
Array4< Real const > crse
Definition: AMReX_InterpFaceRegister.cpp:92
if(!(yy_init))
Definition: amrex_iparser.lex.nolint.H:935
Boundary Condition Records. Necessary information and functions for computing boundary conditions.
Definition: AMReX_BCRec.H:17
static int f(amrex::Real t, N_Vector y_data, N_Vector y_rhs, void *user_data)
Definition: AMReX_SundialsIntegrator.H:44
@ min
Definition: AMReX_ParallelReduce.H:18
Definition: AMReX_Amr.cpp:49
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avgdown_face_y(int i, int j, int k, Array4< Real const > const &fine, int fcomp, Array4< Real > const &crse, int ccomp, Array4< Real const > const &area, Dim3 const &ratio, int ncomp)
Definition: AMReX_EBMultiFabUtil_2D_C.H:106
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_centroid2facecent_y(Box const &vbx, Array4< Real const > const &phi, Array4< Real const > const &apy, Array4< Real const > const &cvol, Array4< Real const > const &ccent, Array4< Real const > const &fcy, Array4< Real > const &edg_y, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:464
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_add_divergence_from_flow(int i, int j, int k, int n, Array4< Real > const &divu, Array4< Real const > const &vel_eb, Array4< EBCellFlag const > const &flag, Array4< Real const > const &vfrc, Array4< Real const > const &bnorm, Array4< Real const > const &barea, GpuArray< Real, 2 > const &dxinv)
Definition: AMReX_EBMultiFabUtil_2D_C.H:599
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_compute_divergence(int i, int j, int k, int n, Array4< Real > const &divu, Array4< Real const > const &u, Array4< Real const > const &v, Array4< int const > const &ccm, Array4< EBCellFlag const > const &flag, Array4< Real const > const &vfrc, Array4< Real const > const &apx, Array4< Real const > const &apy, Array4< Real const > const &fcx, Array4< Real const > const &fcy, GpuArray< Real, 2 > const &dxinv, bool already_on_centroids)
Definition: AMReX_EBMultiFabUtil_2D_C.H:156
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avgdown_face_x(int i, int j, int k, Array4< Real const > const &fine, int fcomp, Array4< Real > const &crse, int ccomp, Array4< Real const > const &area, Dim3 const &ratio, int ncomp)
Definition: AMReX_EBMultiFabUtil_2D_C.H:81
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE T abs(const GpuComplex< T > &a_z) noexcept
Return the absolute value of a complex number.
Definition: AMReX_GpuComplex.H:356
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avg_fc_to_cc(int i, int j, int k, int n, Array4< Real > const &cc, Array4< Real const > const &fx, Array4< Real const > const &fy, Array4< Real const > const &ax, Array4< Real const > const &ay, Array4< EBCellFlag const > const &flag)
Definition: AMReX_EBMultiFabUtil_2D_C.H:216
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avgdown_boundaries(int i, int j, int k, Array4< Real const > const &fine, int fcomp, Array4< Real > const &crse, int ccomp, Array4< Real const > const &ba, Dim3 const &ratio, int ncomp)
Definition: AMReX_EBMultiFabUtil_2D_C.H:131
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avgdown(int i, int j, int k, Array4< Real const > const &fine, int fcomp, Array4< Real > const &crse, int ccomp, Array4< Real const > const &vfrc, Dim3 const &ratio, int ncomp)
Definition: AMReX_EBMultiFabUtil_2D_C.H:56
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_avgdown_with_vol(int i, int j, int k, Array4< Real const > const &fine, int fcomp, Array4< Real > const &crse, int ccomp, Array4< Real const > const &fv, Array4< Real const > const &vfrc, Dim3 const &ratio, int ncomp)
Definition: AMReX_EBMultiFabUtil_2D_C.H:31
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Dim3 ubound(Array4< T > const &a) noexcept
Definition: AMReX_Array4.H:315
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Dim3 lbound(Array4< T > const &a) noexcept
Definition: AMReX_Array4.H:308
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_set_covered_nodes(int i, int j, int k, int n, int icomp, Array4< Real > const &d, Array4< EBCellFlag const > const &f, Real v)
Definition: AMReX_EBMultiFabUtil_2D_C.H:9
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_cc2facecent_y(Box const &vbx, Array4< Real const > const &phi, Array4< Real const > const &apy, Array4< Real const > const &fcy, Array4< Real > const &edg_y, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:334
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_cc2face_x(Box const &ubx, Array4< Real const > const &phi, Array4< Real > const &edg_x, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:545
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_cc2face_y(Box const &vbx, Array4< Real const > const &phi, Array4< Real > const &edg_y, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:572
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_cc2cent(Box const &box, const Array4< Real > &phicent, Array4< Real const > const &phicc, Array4< EBCellFlag const > const &flag, Array4< Real const > const ¢, int ncomp) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:244
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_cc2facecent_x(Box const &ubx, Array4< Real const > const &phi, Array4< Real const > const &apx, Array4< Real const > const &fcx, Array4< Real > const &edg_x, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:283
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void eb_interp_centroid2facecent_x(Box const &ubx, Array4< Real const > const &phi, Array4< Real const > const &apx, Array4< Real const > const &cvol, Array4< Real const > const &ccent, Array4< Real const > const &fcx, Array4< Real > const &edg_x, int ncomp, const Box &domain, const BCRec *bc) noexcept
Definition: AMReX_EBMultiFabUtil_2D_C.H:385
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void Loop(Dim3 lo, Dim3 hi, F const &f) noexcept
Definition: AMReX_Loop.H:125
Definition: AMReX_Array4.H:61
Definition: AMReX_Dim3.H:12
int x
Definition: AMReX_Dim3.H:12
int y
Definition: AMReX_Dim3.H:12
Definition: AMReX_Array.H:34