aboutsummaryrefslogtreecommitdiff
path: root/Source/WarpX.cpp
diff options
context:
space:
mode:
authorGravatar Burlen Loring <bloring@lbl.gov> 2018-11-15 04:52:38 -0800
committerGravatar Burlen Loring <bloring@lbl.gov> 2018-12-05 11:10:19 -0800
commit4a9ccb5c011296cf249cda948db93dfa7c455cdc (patch)
treed69752a53538a867145e3d7e7dd5269a5c286479 /Source/WarpX.cpp
parente4b1ceebfe3bd9bba90365d1c5a03812098c9809 (diff)
downloadWarpX-4a9ccb5c011296cf249cda948db93dfa7c455cdc.tar.gz
WarpX-4a9ccb5c011296cf249cda948db93dfa7c455cdc.tar.zst
WarpX-4a9ccb5c011296cf249cda948db93dfa7c455cdc.zip
init ghost cells during cell centering conversion for in situ
Diffstat (limited to 'Source/WarpX.cpp')
-rw-r--r--Source/WarpX.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 181da6360..6ed1ec968 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -843,6 +843,26 @@ WarpX::ComputeDivB (MultiFab& divB, int dcomp,
}
void
+WarpX::ComputeDivB (MultiFab& divB, int dcomp,
+ const std::array<const MultiFab*, 3>& B,
+ const std::array<Real,3>& dx, int ngrow)
+{
+#ifdef _OPENMP
+#pragma omp parallel
+#endif
+ for (MFIter mfi(divB, true); mfi.isValid(); ++mfi)
+ {
+ Box bx = mfi.growntilebox(ngrow);
+ WRPX_COMPUTE_DIVB(bx.loVect(), bx.hiVect(),
+ BL_TO_FORTRAN_N_ANYD(divB[mfi],dcomp),
+ BL_TO_FORTRAN_ANYD((*B[0])[mfi]),
+ BL_TO_FORTRAN_ANYD((*B[1])[mfi]),
+ BL_TO_FORTRAN_ANYD((*B[2])[mfi]),
+ dx.data());
+ }
+}
+
+void
WarpX::ComputeDivE (MultiFab& divE, int dcomp,
const std::array<const MultiFab*, 3>& E,
const std::array<Real,3>& dx)
@@ -863,6 +883,26 @@ WarpX::ComputeDivE (MultiFab& divE, int dcomp,
}
void
+WarpX::ComputeDivE (MultiFab& divE, int dcomp,
+ const std::array<const MultiFab*, 3>& E,
+ const std::array<Real,3>& dx, int ngrow)
+{
+#ifdef _OPENMP
+#pragma omp parallel
+#endif
+ for (MFIter mfi(divE, true); mfi.isValid(); ++mfi)
+ {
+ Box bx = mfi.growntilebox(ngrow);
+ WRPX_COMPUTE_DIVE(bx.loVect(), bx.hiVect(),
+ BL_TO_FORTRAN_N_ANYD(divE[mfi],dcomp),
+ BL_TO_FORTRAN_ANYD((*E[0])[mfi]),
+ BL_TO_FORTRAN_ANYD((*E[1])[mfi]),
+ BL_TO_FORTRAN_ANYD((*E[2])[mfi]),
+ dx.data());
+ }
+}
+
+void
WarpX::applyFilter (MultiFab& dstmf, const MultiFab& srcmf, int scomp, int dcomp, int ncomp)
{
ncomp = std::min(ncomp, srcmf.nComp());