44 amrex::FArrayBox& derfab,
47 const amrex::FArrayBox& datfab,
48 const amrex::Array4<const amrex::Real>& pm,
49 const amrex::Array4<const amrex::Real>& pn,
50 const amrex::Array4<const amrex::Real>& ,
51 const amrex::Geometry& ,
56 AMREX_ALWAYS_ASSERT(ncomp == 1);
58 auto const dat = datfab.array();
59 auto tfab = derfab.array();
61 ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
noexcept
63 Real d2x = 0.5_rt / pm(i-1,j, 0) + 1.0_rt / pm(i,j,0) + 0.5_rt / pm(i+1,j,0);
64 Real d2y = 0.5_rt / pn(i, j-1,0) + 1.0_rt / pn(i,j,0) + 0.5_rt / pm(i,j+1,0);
65 tfab(i,j,k,dcomp) = (dat(i+1,j,k,1) - dat(i-1,j,k,1)) / (d2x)
66 - (dat(i,j+1,k,0) - dat(i,j-1,k,0)) / (d2y);