MCPcopy Create free account
hub / github.com/AMReX-Astro/Castro / ca_derdivb

Function ca_derdivb

Source/driver/Derive.cpp:1224–1250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1222 }
1223
1224 void ca_derdivb(const Box& bx, FArrayBox& derfab, int /*dcomp*/, int /*ncomp*/,
1225 const FArrayBox& datfab, const Geometry& geom,
1226 Real /*time*/, const int* /*bcrec*/, int /*level*/)
1227 {
1228
1229 auto const dat = datfab.array();
1230 auto const der = derfab.array();
1231
1232 auto dx = geom.CellSizeArray();
1233
1234 amrex::ParallelFor(bx,
1235 [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
1236 {
1237 Real dBx = dat(i+1,j,k,0) - dat(i,j,k,0);
1238 der(i,j,k,0) = dBx / dx[0];
1239
1240#if AMREX_SPACEDIM >= 2
1241 Real dBy = dat(i,j+1,k,1) - dat(i,j,k,1);
1242 der(i,j,k,0) += dBy / dx[1];
1243#endif
1244
1245#if AMREX_SPACEDIM == 3
1246 Real dBz = dat(i,j,k+1,2) - dat(i,j,k,2);
1247 der(i,j,k,0) += dBz / dx[2];
1248#endif
1249 });
1250 }
1251
1252#endif
1253

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected