diff options
author | 2018-11-15 04:52:38 -0800 | |
---|---|---|
committer | 2018-12-05 11:10:19 -0800 | |
commit | 4a9ccb5c011296cf249cda948db93dfa7c455cdc (patch) | |
tree | d69752a53538a867145e3d7e7dd5269a5c286479 /Source/WarpX.cpp | |
parent | e4b1ceebfe3bd9bba90365d1c5a03812098c9809 (diff) | |
download | WarpX-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.cpp | 40 |
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()); |