aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp')
-rw-r--r--Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp15
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