aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2021-07-08 02:05:26 -0700
committerGravatar GitHub <noreply@github.com> 2021-07-08 02:05:26 -0700
commit6269c20a6c42037c85efd76bfa9ed162a312df96 (patch)
tree0a12767ff0c56c598f6d684625981fec99f75db7 /Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp
parentecbe32dca65ace0faa092afaf75a3725c65a42e5 (diff)
downloadWarpX-6269c20a6c42037c85efd76bfa9ed162a312df96.tar.gz
WarpX-6269c20a6c42037c85efd76bfa9ed162a312df96.tar.zst
WarpX-6269c20a6c42037c85efd76bfa9ed162a312df96.zip
Do Not Fill Guard Cells with Inverse FFTs, Unless for Field Damping (#2045)
* Do Not Always Fill Guard Cells with Inverse FFTs * Query psatd.fill_guards from Inputs * Clean Up and Reduce Style Changes * Fix Bug for Periodic Single Box * Clean Up and Reduce Style Changes * Fix Bug for RZ PSATD * Remove Input Parameter, Default 0 Unless Damping * Fix CI Tests (2D) * Fix CI Tests (3D)
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp
index e57302cc4..4445705cb 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp
+++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp
@@ -30,8 +30,10 @@ using namespace amrex;
SpectralBaseAlgorithm::SpectralBaseAlgorithm(const SpectralKSpace& spectral_kspace,
const amrex::DistributionMapping& dm,
const int norder_x, const int norder_y,
- const int norder_z, const bool nodal):
+ const int norder_z, const bool nodal,
+ const amrex::IntVect& fill_guards):
// Compute and assign the modified k vectors
+ m_fill_guards(fill_guards),
modified_kx_vec(spectral_kspace.getModifiedKComponent(dm,0,norder_x,nodal)),
#if (AMREX_SPACEDIM==3)
modified_ky_vec(spectral_kspace.getModifiedKComponent(dm,1,norder_y,nodal)),
@@ -62,6 +64,8 @@ SpectralBaseAlgorithm::ComputeSpectralDivE (
field_data.ForwardTransform(lev, *Efield[1], Idx::Ey, 0 );
field_data.ForwardTransform(lev, *Efield[2], Idx::Ez, 0 );
+ const amrex::IntVect& fill_guards = m_fill_guards;
+
// Loop over boxes
for (MFIter mfi(field_data.fields); mfi.isValid(); ++mfi){
@@ -101,5 +105,5 @@ SpectralBaseAlgorithm::ComputeSpectralDivE (
}
// Backward Fourier transform
- field_data.BackwardTransform(lev, divE, Idx::divE, 0 );
+ field_data.BackwardTransform(lev, divE, Idx::divE, 0, fill_guards);
}