diff options
Diffstat (limited to 'Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp')
-rw-r--r-- | Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp b/Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp index e8d7828cb..26d99f4a9 100644 --- a/Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp +++ b/Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp @@ -4,6 +4,7 @@ #if (defined WARPX_DIM_RZ) && (defined WARPX_USE_PSATD) #include "FieldSolver/SpectralSolver/SpectralFieldData.H" #include "FieldSolver/SpectralSolver/SpectralSolverRZ.H" + #include "Utils/WarpXAlgorithmSelection.H" #endif #include "Particles/MultiParticleContainer.H" #include "Particles/WarpXParticleContainer.H" @@ -54,11 +55,15 @@ RhoFunctor::operator() ( amrex::MultiFab& mf_dst, const int dcomp, const int /*i #if (defined WARPX_DIM_RZ) && (defined WARPX_USE_PSATD) using IdxAvg = SpectralFieldIndexTimeAveraging; - if (WarpX::use_kspace_filter) { - auto & solver = warpx.get_spectral_solver_fp(m_lev); - solver.ForwardTransform(m_lev, *rho, IdxAvg::rho_new); - solver.ApplyFilter(IdxAvg::rho_new); - solver.BackwardTransform(m_lev, *rho, IdxAvg::rho_new); + // Apply k-space filtering when using the PSATD solver + if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::PSATD) + { + if (WarpX::use_kspace_filter) { + auto & solver = warpx.get_spectral_solver_fp(m_lev); + solver.ForwardTransform(m_lev, *rho, IdxAvg::rho_new); + solver.ApplyFilter(IdxAvg::rho_new); + solver.BackwardTransform(m_lev, *rho, IdxAvg::rho_new); + } } #endif |