1#ifndef AMREX_MF_INTERP_2D_C_H_
2#define AMREX_MF_INTERP_2D_C_H_
10 Array4<Real const>
const& u,
int scomp,
int ncomp,
11 Box const& domain,
IntVect const& ratio, BCRec
const* bc)
noexcept
22 for (
int ns = 0; ns < ncomp; ++ns) {
28 Real df = Real(2.0) * (u(i+1,j,0,nu) - u(i ,j,0,nu));
29 Real db = Real(2.0) * (u(i ,j,0,nu) - u(i-1,j,0,nu));
30 sx = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
31 sx = std::copysign(Real(1.),dcx)*
amrex::min(sx,std::abs(dcx));
32 slope(i,j,0,ns ) = dcx;
34 slope(i,j,0,ns ) = Real(0.0);
40 Real df = Real(2.0) * (u(i,j+1,0,nu) - u(i,j ,0,nu));
41 Real db = Real(2.0) * (u(i,j ,0,nu) - u(i,j-1,0,nu));
42 sy = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
43 sy = std::copysign(Real(1.),dcy)*
amrex::min(sy,std::abs(dcy));
44 slope(i,j,0,ns+ ncomp) = dcy;
46 slope(i,j,0,ns+ ncomp) = Real(0.0);
50 Real alpha = Real(1.0);
51 if (sx != Real(0.0) || sy != Real(0.0)) {
52 Real dumax = std::abs(sx) * Real(ratio[0]-1)/Real(2*ratio[0])
53 + std::abs(sy) * Real(ratio[1]-1)/Real(2*ratio[1]);
54 Real umax = u(i,j,0,nu);
55 Real umin = u(i,j,0,nu);
56 int ilim = ratio[0] > 1 ? 1 : 0;
57 int jlim = ratio[1] > 1 ? 1 : 0;
58 for (
int joff = -jlim; joff <= jlim; ++joff) {
59 for (
int ioff = -ilim; ioff <= ilim; ++ioff) {
60 umin =
amrex::min(umin, u(i+ioff,j+joff,0,nu));
61 umax =
amrex::max(umax, u(i+ioff,j+joff,0,nu));
63 if (dumax * alpha > (umax - u(i,j,0,nu))) {
64 alpha = (umax - u(i,j,0,nu)) / dumax;
66 if (dumax * alpha > (u(i,j,0,nu) - umin)) {
67 alpha = (u(i,j,0,nu) - umin) / dumax;
74 if (dcx != Real(0.0)) {
77 if (dcy != Real(0.0)) {
83 for (
int ns = 0; ns < ncomp; ++ns) {
84 slope(i,j,0,ns ) *= sfx;
85 slope(i,j,0,ns+ ncomp) *= sfy;
91 Array4<Real const>
const& u,
int scomp,
int ncomp,
92 Box const& domain,
IntVect const& ratio, BCRec
const* bc)
noexcept
97 for (
int ns = 0; ns < ncomp; ++ns) {
103 Real df = Real(2.0) * (u(i+1,j,0,nu) - u(i ,j,0,nu));
104 Real db = Real(2.0) * (u(i ,j,0,nu) - u(i-1,j,0,nu));
105 Real sx = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
106 sx = std::copysign(Real(1.),dc)*
amrex::min(sx,std::abs(dc));
107 if (dc != Real(0.0)) {
110 slope(i,j,0,ns ) = dc;
112 slope(i,j,0,ns ) = Real(0.0);
118 Real df = Real(2.0) * (u(i,j+1,0,nu) - u(i,j ,0,nu));
119 Real db = Real(2.0) * (u(i,j ,0,nu) - u(i,j-1,0,nu));
120 Real sy = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
121 sy = std::copysign(Real(1.),dc)*
amrex::min(sy,std::abs(dc));
122 if (dc != Real(0.0)) {
125 slope(i,j,0,ns+ ncomp) = dc;
127 slope(i,j,0,ns+ ncomp) = Real(0.0);
131 for (
int ns = 0; ns < ncomp; ++ns) {
132 slope(i,j,0,ns ) *= sfx;
133 slope(i,j,0,ns+ ncomp) *= sfy;
139 Array4<Real const>
const& u,
int scomp,
int ncomp,
141 BCRec
const* bc)
noexcept
151 Real df = Real(2.0) * (u(i+1,j,0,nu) - u(i ,j,0,nu));
152 Real db = Real(2.0) * (u(i ,j,0,nu) - u(i-1,j,0,nu));
153 sx = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
154 sx = std::copysign(Real(1.),dc)*
amrex::min(sx,std::abs(dc));
160 Real df = Real(2.0) * (u(i,j+1,0,nu) - u(i,j ,0,nu));
161 Real db = Real(2.0) * (u(i,j ,0,nu) - u(i,j-1,0,nu));
162 sy = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
163 sy = std::copysign(Real(1.),dc)*
amrex::min(sy,std::abs(dc));
166 Real alpha = Real(1.0);
167 if (sx != Real(0.0) || sy != Real(0.0)) {
168 Real dumax = std::abs(sx) * Real(ratio[0]-1)/Real(2*ratio[0])
169 + std::abs(sy) * Real(ratio[1]-1)/Real(2*ratio[1]);
170 Real umax = u(i,j,0,nu);
171 Real umin = u(i,j,0,nu);
172 int ilim = ratio[0] > 1 ? 1 : 0;
173 int jlim = ratio[1] > 1 ? 1 : 0;
174 for (
int joff = -jlim; joff <= jlim; ++joff) {
175 for (
int ioff = -ilim; ioff <= ilim; ++ioff) {
176 umin =
amrex::min(umin, u(i+ioff,j+joff,0,nu));
177 umax =
amrex::max(umax, u(i+ioff,j+joff,0,nu));
179 if (dumax * alpha > (umax - u(i,j,0,nu))) {
180 alpha = (umax - u(i,j,0,nu)) / dumax;
182 if (dumax * alpha > (u(i,j,0,nu) - umin)) {
183 alpha = (u(i,j,0,nu) - umin) / dumax;
187 slope(i,j,0,ns ) = sx * alpha;
188 slope(i,j,0,ns+ ncomp) = sy * alpha;
193 Array4<Real const>
const&
slope, Array4<Real const>
const&
crse,
194 int ccomp,
int ncomp,
IntVect const& ratio)
noexcept
198 const Real xoff = (
static_cast<Real
>(i - ic*ratio[0]) + Real(0.5)) / Real(ratio[0]) - Real(0.5);
199 const Real yoff = (
static_cast<Real
>(j - jc*ratio[1]) + Real(0.5)) / Real(ratio[1]) - Real(0.5);
200 fine(i,j,0,fcomp+ns) =
crse(ic,jc,0,ccomp+ns)
201 + xoff *
slope(ic,jc,0,ns)
202 + yoff *
slope(ic,jc,0,ns+ncomp);
209 BCRec const* bc, Real drf, Real rlo,
210 Real dtf, Real tlo)
noexcept
220 Real df = Real(2.0) * (u(i+1,j,0,nu) - u(i ,j,0,nu));
221 Real db = Real(2.0) * (u(i ,j,0,nu) - u(i-1,j,0,nu));
222 sx = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
223 sx = std::copysign(Real(1.),dc)*
amrex::min(sx,std::abs(dc));
229 Real df = Real(2.0) * (u(i,j+1,0,nu) - u(i,j ,0,nu));
230 Real db = Real(2.0) * (u(i,j ,0,nu) - u(i,j-1,0,nu));
231 sy = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
232 sy = std::copysign(Real(1.),dc)*
amrex::min(sy,std::abs(dc));
235 Real alpha = Real(1.0);
236 if (sx != Real(0.0) || sy != Real(0.0)) {
239 const Real drc = drf * ratio[0];
240 const Real rcm = i * drc + rlo;
241 const Real rcp = (i+1) * drc + rlo;
242 Real vcm = rcm*rcm*rcm;
243 Real vcp = rcp*rcp*rcp;
244 Real rfm = i*ratio[0] * drf + rlo;
245 Real rfp = (i*ratio[0] + 1) * drf + rlo;
246 Real vfm = rfm*rfm*rfm;
247 Real vfp = rfp*rfp*rfp;
248 Real xlo = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
249 rfm = ((i+1)*ratio[0] - 1) * drf + rlo;
250 rfp = (i+1)*ratio[0] * drf + rlo;
253 Real xhi = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
256 const Real dtc = dtf * ratio[1];
257 const Real tcm = j * dtc + tlo;
258 const Real tcp = (j+1) * dtc + tlo;
261 Real tfm = j*ratio[1] * dtf + tlo;
262 Real tfp = (j*ratio[1] + 1) * dtf + tlo;
265 Real ylo = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
266 tfm = ((j+1)*ratio[1] - 1) * dtf + tlo;
267 tfp = (j+1)*ratio[1] * dtf + tlo;
270 Real yhi = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
274 Real umax = u(i,j,0,nu);
275 Real umin = u(i,j,0,nu);
276 int ilim = ratio[0] > 1 ? 1 : 0;
277 int jlim = ratio[1] > 1 ? 1 : 0;
278 for (
int joff = -jlim; joff <= jlim; ++joff) {
279 for (
int ioff = -ilim; ioff <= ilim; ++ioff) {
280 umin =
amrex::min(umin, u(i+ioff,j+joff,0,nu));
281 umax =
amrex::max(umax, u(i+ioff,j+joff,0,nu));
283 if (dumax * alpha > (umax - u(i,j,0,nu))) {
284 alpha = (umax - u(i,j,0,nu)) / dumax;
286 if (dumin * alpha > (u(i,j,0,nu) - umin)) {
287 alpha = (u(i,j,0,nu) - umin) / dumin;
291 slope(i,j,0,ns ) = sx * alpha;
292 slope(i,j,0,ns+ ncomp) = sy * alpha;
298 int ccomp,
int ncomp,
IntVect const& ratio, Real drf, Real rlo,
299 Real dtf, Real tlo)
noexcept
303 const Real drc = drf * ratio[0];
304 const Real rcm = ic * drc + rlo;
305 const Real rcp = (ic+1) * drc + rlo;
306 const Real rfm = i * drf + rlo;
307 const Real rfp = (i +1) * drf + rlo;
308 Real vcm = rcm*rcm*rcm;
309 Real vcp = rcp*rcp*rcp;
310 Real vfm = rfm*rfm*rfm;
311 Real vfp = rfp*rfp*rfp;
312 const Real xoff = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
316 const Real dtc = dtf * ratio[1];
317 const Real tcm = jc * dtc + tlo;
318 const Real tcp = (jc+1) * dtc + tlo;
319 const Real tfm = j * dtf + tlo;
320 const Real tfp = (j +1) * dtf + tlo;
325 const Real yoff = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
327 fine(i,j,0,fcomp+ns) =
crse(ic,jc,0,ccomp+ns)
328 + xoff *
slope(ic,jc,0,ns)
329 + yoff *
slope(ic,jc,0,ns+ncomp);
336 BCRec const* bc, Real drf, Real rlo)
noexcept
346 Real df = Real(2.0) * (u(i+1,j,0,nu) - u(i ,j,0,nu));
347 Real db = Real(2.0) * (u(i ,j,0,nu) - u(i-1,j,0,nu));
348 sx = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
349 sx = std::copysign(Real(1.),dc)*
amrex::min(sx,std::abs(dc));
355 Real df = Real(2.0) * (u(i,j+1,0,nu) - u(i,j ,0,nu));
356 Real db = Real(2.0) * (u(i,j ,0,nu) - u(i,j-1,0,nu));
357 sy = (df*db >= Real(0.0)) ?
amrex::min(std::abs(df),std::abs(db)) : Real(0.);
358 sy = std::copysign(Real(1.),dc)*
amrex::min(sy,std::abs(dc));
361 Real alpha = Real(1.0);
362 if (sx != Real(0.0) || sy != Real(0.0)) {
363 const Real drc = drf * ratio[0];
364 const Real rcm = i * drc + rlo;
365 const Real rcp = (i+1) * drc + rlo;
366 const Real vcm = rcm*rcm;
367 const Real vcp = rcp*rcp;
368 Real rfm = i*ratio[0] * drf + rlo;
369 Real rfp = (i*ratio[0] + 1) * drf + rlo;
372 Real xlo = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
373 rfm = ((i+1)*ratio[0] - 1) * drf + rlo;
374 rfp = (i+1)*ratio[0] * drf + rlo;
377 Real xhi = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
379 + std::abs(sy) * Real(ratio[1]-1)/Real(2*ratio[1]);
381 + std::abs(sy) * Real(ratio[1]-1)/Real(2*ratio[1]);
382 Real umax = u(i,j,0,nu);
383 Real umin = u(i,j,0,nu);
384 int ilim = ratio[0] > 1 ? 1 : 0;
385 int jlim = ratio[1] > 1 ? 1 : 0;
386 for (
int joff = -jlim; joff <= jlim; ++joff) {
387 for (
int ioff = -ilim; ioff <= ilim; ++ioff) {
388 umin =
amrex::min(umin, u(i+ioff,j+joff,0,nu));
389 umax =
amrex::max(umax, u(i+ioff,j+joff,0,nu));
391 if (dumax * alpha > (umax - u(i,j,0,nu))) {
392 alpha = (umax - u(i,j,0,nu)) / dumax;
394 if (dumin * alpha > (u(i,j,0,nu) - umin)) {
395 alpha = (u(i,j,0,nu) - umin) / dumin;
399 slope(i,j,0,ns ) = sx * alpha;
400 slope(i,j,0,ns+ ncomp) = sy * alpha;
406 int ccomp,
int ncomp,
IntVect const& ratio, Real drf, Real rlo)
noexcept
410 const Real drc = drf * ratio[0];
411 const Real rcm = ic * drc + rlo;
412 const Real rcp = (ic+1) * drc + rlo;
413 const Real rfm = i * drf + rlo;
414 const Real rfp = (i +1) * drf + rlo;
415 const Real vcm = rcm*rcm;
416 const Real vcp = rcp*rcp;
417 const Real vfm = rfm*rfm;
418 const Real vfp = rfp*rfp;
419 const Real xoff = Real(0.5) * ((vfm+vfp) - (vcm+vcp)) / (vcp - vcm);
420 const Real yoff = (j - jc*ratio[1] + Real(0.5)) / Real(ratio[1]) - Real(0.5);
421 fine(i,j,0,fcomp+ns) =
crse(ic,jc,0,ccomp+ns)
422 + xoff *
slope(ic,jc,0,ns)
423 + yoff *
slope(ic,jc,0,ns+ncomp);
433 int ioff = i - ic*ratio[0];
434 int joff = j - jc*ratio[1];
437 if (ioff*2 < ratio[0]) {
439 wx = Real(ratio[0]+1+2*ioff) / Real(2*ratio[0]);
442 wx = Real(3*ratio[0]-1-2*ioff) / Real(2*ratio[0]);
444 if (joff*2 < ratio[1]) {
446 wy = Real(ratio[1]+1+2*joff) / Real(2*ratio[1]);
449 wy = Real(3*ratio[1]-1-2*joff) / Real(2*ratio[1]);
451 fine(i,j,0,n+fcomp) =
452 crse(ic ,jc ,0,n+ccomp)* wx * wy +
453 crse(ic+sx,jc ,0,n+ccomp)*(Real(1.0)-wx)* wy +
454 crse(ic ,jc+sy,0,n+ccomp)* wx *(Real(1.0)-wy) +
455 crse(ic+sx,jc+sy,0,n+ccomp)*(Real(1.0)-wx)*(Real(1.0)-wy);
460 Array4<Real const>
const&
crse,
int ccomp,
IntVect const& ratio)
noexcept
464 int ioff = i - ic*ratio[0];
465 int joff = j - jc*ratio[1];
466 Real rxinv = Real(1.0) / Real(ratio[0]);
467 Real ryinv = Real(1.0) / Real(ratio[1]);
468 if (ioff != 0 && joff != 0) {
470 fine(i,j,0,n+fcomp) = rxinv * ryinv *
471 (
crse(ic ,jc ,0,n+ccomp) *
static_cast<Real
>((ratio[0]-ioff) * (ratio[1]-joff)) +
472 crse(ic+1,jc ,0,n+ccomp) *
static_cast<Real
>(( ioff) * (ratio[1]-joff)) +
473 crse(ic ,jc+1,0,n+ccomp) *
static_cast<Real
>((ratio[0]-ioff) * ( joff)) +
474 crse(ic+1,jc+1,0,n+ccomp) *
static_cast<Real
>(( ioff) * ( joff)));
475 }
else if (ioff != 0) {
477 fine(i,j,0,n+fcomp) = rxinv*(
static_cast<Real
>(ratio[0]-ioff)*
crse(ic ,jc,0,n+ccomp) +
478 static_cast<Real
>( ioff)*
crse(ic+1,jc,0,n+ccomp));
479 }
else if (joff != 0) {
481 fine(i,j,0,n+fcomp) = ryinv*(
static_cast<Real
>(ratio[1]-joff)*
crse(ic,jc ,0,n+ccomp) +
482 static_cast<Real
>( joff)*
crse(ic,jc+1,0,n+ccomp));
485 fine(i,j,0,n+fcomp) =
crse(ic,jc,0,n+ccomp);
494 BCRec const* bc)
noexcept
503 slope(i,j,0,5*n ) = sx;
504 slope(i,j,0,5*n+1) = sy;
505 slope(i,j,0,5*n+2) = sxx;
506 slope(i,j,0,5*n+3) = syy;
507 slope(i,j,0,5*n+4) = sxy;
519 int irx = i - ic*ratio[0];
520 int jry = j - jc*ratio[1];
523 Real xoff = ( Real(irx) + 0.5_rt ) / Real(ratio[0]) - 0.5_rt;
524 Real yoff = ( Real(jry) + 0.5_rt ) / Real(ratio[1]) - 0.5_rt;
526 fine(i,j,0,fcomp+n) =
crse(ic,jc,0,ccomp+n)
527 + xoff *
slope(ic,jc,0,5*n )
528 + yoff *
slope(ic,jc,0,5*n+1)
529 + 0.5_rt * xoff * xoff *
slope(ic,jc,0,5*n+2)
530 + 0.5_rt * yoff * yoff *
slope(ic,jc,0,5*n+3)
531 + xoff * yoff *
slope(ic,jc,0,5*n+4);
545 int jry = j - jc*ratio[1];
548 Real fn_dr = fn_geomdata.CellSize(0);
549 Real fn_rlo = fn_geomdata.ProbLo(0);
550 Real cs_dr = cs_geomdata.CellSize(0);
551 Real cs_rlo = cs_geomdata.ProbLo(0);
554 Real fn_rm = fn_rlo + Real(i) * fn_dr;
555 Real fn_rp = fn_rlo + Real(i+1) * fn_dr;
556 Real cs_rm = cs_rlo + Real(ic) * cs_dr;
557 Real cs_rp = cs_rlo + Real(ic+1) * cs_dr;
561 Real fn_vm = fn_rm*fn_rm;
562 Real fn_vp = fn_rp*fn_rp;
563 Real fcen = fn_vm + fn_vp;
564 Real cs_vm = cs_rm*cs_rm;
565 Real cs_vp = cs_rp*cs_rp;
566 Real ccen = cs_vm + cs_vp;
569 Real xoff = 0.5_rt * ( fcen - ccen ) / ( cs_vp - cs_vm ) ;
572 Real yoff = ( Real(jry) + 0.5_rt ) / Real(ratio[1]) - 0.5_rt;
574 fine(i,j,0,fcomp+n) =
crse(ic,jc,0,ccomp+n)
575 + xoff *
slope(ic,jc,0,5*n )
576 + yoff *
slope(ic,jc,0,5*n+1)
577 + 0.5_rt * xoff * xoff *
slope(ic,jc,0,5*n+2)
578 + 0.5_rt * yoff * yoff *
slope(ic,jc,0,5*n+3)
579 + xoff * yoff *
slope(ic,jc,0,5*n+4);
#define AMREX_FORCE_INLINE
Definition AMReX_Extension.H:119
#define AMREX_GPU_HOST_DEVICE
Definition AMReX_GpuQualifiers.H:20
Array4< Real > fine
Definition AMReX_InterpFaceRegister.cpp:90
Array4< Real > slope
Definition AMReX_InterpFaceRegister.cpp:91
Array4< Real const > crse
Definition AMReX_InterpFaceRegister.cpp:92
Boundary Condition Records. Necessary information and functions for computing boundary conditions.
Definition AMReX_BCRec.H:17
Definition AMReX_Amr.cpp:49
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp_mcslope_sph(int i, int ns, Array4< Real > const &slope, Array4< Real const > const &u, int scomp, int, Box const &domain, IntVect const &ratio, BCRec const *bc, Real drf, Real rlo) noexcept
Definition AMReX_MFInterp_1D_C.H:114
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_bilin_interp(int i, int, int, int n, Array4< T > const &fine, int fcomp, Array4< T const > const &crse, int ccomp, IntVect const &ratio) noexcept
Definition AMReX_MFInterp_1D_C.H:186
__host__ __device__ void mf_cell_quadratic_calcslope(int i, int j, int, int n, Array4< Real const > const &crse, int ccomp, Array4< Real > const &slope, Box const &domain, BCRec const *bc) noexcept
Definition AMReX_MFInterp_2D_C.H:490
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp_llslope(int i, int, int, Array4< Real > const &slope, Array4< Real const > const &u, int scomp, int ncomp, Box const &domain, IntVect const &, BCRec const *bc) noexcept
Definition AMReX_MFInterp_1D_C.H:39
__host__ __device__ Real mf_cell_quadratic_compute_slopes_xx(int i, int j, int k, Array4< Real const > const &u, int nu, Box const &domain, BCRec const &bc)
Definition AMReX_MFInterp_C.H:89
__host__ __device__ Real mf_compute_slopes_y(int i, int j, int k, Array4< Real const > const &u, int nu, Box const &domain, BCRec const &bc)
Definition AMReX_MFInterp_C.H:37
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp_limit_minmax_llslope(int i, int, int, Array4< Real > const &slope, Array4< Real const > const &u, int scomp, int ncomp, Box const &domain, IntVect const &ratio, BCRec const *bc) noexcept
Definition AMReX_MFInterp_1D_C.H:7
__host__ __device__ BoxND< dim > coarsen(const BoxND< dim > &b, int ref_ratio) noexcept
Coarsen BoxND by given (positive) refinement ratio. NOTE: if type(dir) = CELL centered: lo <- lo/rati...
Definition AMReX_Box.H:1322
BoxND< 3 > Box
Definition AMReX_BaseFwd.H:27
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp_mcslope(int i, int, int, int ns, Array4< Real > const &slope, Array4< Real const > const &u, int scomp, int, Box const &domain, IntVect const &ratio, BCRec const *bc) noexcept
Definition AMReX_MFInterp_1D_C.H:66
__host__ __device__ constexpr const T & min(const T &a, const T &b) noexcept
Definition AMReX_Algorithm.H:21
__host__ __device__ void mf_cell_quadratic_interp_rz(int i, int j, int, int n, Array4< Real > const &fine, int fcomp, Array4< Real const > const &crse, int ccomp, Array4< Real const > const &slope, IntVect const &ratio, GeometryData const &cs_geomdata, GeometryData const &fn_geomdata) noexcept
Definition AMReX_MFInterp_2D_C.H:535
__host__ __device__ void mf_cell_cons_lin_interp_rz(int i, int j, int ns, Array4< Real > const &fine, int fcomp, Array4< Real const > const &slope, Array4< Real const > const &crse, int ccomp, int ncomp, IntVect const &ratio, Real drf, Real rlo) noexcept
Definition AMReX_MFInterp_2D_C.H:404
__host__ __device__ Real mf_cell_quadratic_compute_slopes_yy(int i, int j, int k, Array4< Real const > const &u, int nu, Box const &domain, BCRec const &bc)
Definition AMReX_MFInterp_C.H:110
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp(int i, int, int, int ns, Array4< Real > const &fine, int fcomp, Array4< Real const > const &slope, Array4< Real const > const &crse, int ccomp, int, IntVect const &ratio) noexcept
Definition AMReX_MFInterp_1D_C.H:102
IntVectND< 3 > IntVect
Definition AMReX_BaseFwd.H:30
__host__ __device__ constexpr const T & max(const T &a, const T &b) noexcept
Definition AMReX_Algorithm.H:35
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_nodebilin_interp(int i, int, int, int n, Array4< Real > const &fine, int fcomp, Array4< Real const > const &crse, int ccomp, IntVect const &ratio) noexcept
Definition AMReX_MFInterp_1D_C.H:206
__host__ __device__ Real mf_compute_slopes_x(int i, int j, int k, Array4< Real const > const &u, int nu, Box const &domain, BCRec const &bc)
Definition AMReX_MFInterp_C.H:11
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mf_cell_cons_lin_interp_sph(int i, int ns, Array4< Real > const &fine, int fcomp, Array4< Real const > const &slope, Array4< Real const > const &crse, int ccomp, int, IntVect const &ratio, Real drf, Real rlo) noexcept
Definition AMReX_MFInterp_1D_C.H:165
__host__ __device__ void mf_cell_cons_lin_interp_mcslope_rz(int i, int j, int ns, Array4< Real > const &slope, Array4< Real const > const &u, int scomp, int ncomp, Box const &domain, IntVect const &ratio, BCRec const *bc, Real drf, Real rlo) noexcept
Definition AMReX_MFInterp_2D_C.H:333
__host__ __device__ Real mf_cell_quadratic_compute_slopes_xy(int i, int j, int k, Array4< Real const > const &u, int nu, Box const &domain, BCRec const &bc)
Definition AMReX_MFInterp_C.H:152
__host__ __device__ void mf_cell_quadratic_interp(int i, int j, int, int n, Array4< Real > const &fine, int fcomp, Array4< Real const > const &crse, int ccomp, Array4< Real const > const &slope, IntVect const &ratio) noexcept
Definition AMReX_MFInterp_2D_C.H:511
Definition AMReX_Array4.H:61
Definition AMReX_Geometry.H:25