aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/source/usage/parameters.rst14
-rw-r--r--Examples/Modules/RigidInjection/inputs_2d_LabFrame1
-rw-r--r--Examples/Modules/dive_cleaning/inputs_3d1
-rw-r--r--Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py3
-rw-r--r--Examples/Modules/ionization/inputs_2d_bf_rt1
-rw-r--r--Examples/Modules/ionization/inputs_2d_rt1
-rw-r--r--Examples/Modules/laser_injection/inputs_2d_rt1
-rw-r--r--Examples/Modules/laser_injection/inputs_3d_rt1
-rw-r--r--Examples/Modules/qed/schwinger/inputs_3d_schwinger1
-rwxr-xr-xExamples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py3
-rw-r--r--Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py3
-rw-r--r--Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py3
-rw-r--r--Examples/Physics_applications/uniform_plasma/inputs_2d1
-rw-r--r--Examples/Tests/ElectrostaticDirichletBC/inputs_2d1
-rw-r--r--Examples/Tests/ElectrostaticSphere/inputs_rz1
-rw-r--r--Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py3
-rw-r--r--Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py3
-rw-r--r--Examples/Tests/Langmuir/inputs_2d_multi_rt1
-rw-r--r--Examples/Tests/Langmuir/inputs_2d_multi_rz_rt1
-rw-r--r--Examples/Tests/Langmuir/inputs_3d_multi_rt1
-rw-r--r--Examples/Tests/Larmor/inputs_2d_mr1
-rw-r--r--Examples/Tests/PML/inputs_2d2
-rw-r--r--Examples/Tests/SilverMueller/inputs_2d_x2
-rw-r--r--Examples/Tests/SilverMueller/inputs_2d_z2
-rw-r--r--Examples/Tests/SilverMueller/inputs_rz_z2
-rw-r--r--Examples/Tests/initial_distribution/inputs1
-rw-r--r--Examples/Tests/laser_on_fine/inputs_2d1
-rw-r--r--Source/Diagnostics/ComputeDiagFunctors/RhoFunctor.cpp15
-rw-r--r--Source/WarpX.cpp24
29 files changed, 73 insertions, 22 deletions
diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst
index 80e012c5d..024f6e35e 100644
--- a/Docs/source/usage/parameters.rst
+++ b/Docs/source/usage/parameters.rst
@@ -1156,11 +1156,15 @@ Numerics and algorithms
and the Courant-Friedrichs-Lewy (CFL) limit. (e.g. for `warpx.cfl=1`,
the timestep will be exactly equal to the CFL limit.)
-* ``warpx.use_filter`` (`0 or 1`)
- Whether to smooth the charge and currents on the mesh, after depositing
- them from the macroparticles. This uses a bilinear filter
- (see the :ref:`filtering section <theory-pic-filter>`).
- When using the RZ spectral solver, the filtering is done in k-space.
+* ``warpx.use_filter`` (`0` or `1`; default: `1`, except for RZ FDTD)
+ Whether to smooth the charge and currents on the mesh, after depositing them from the macro-particles.
+ This uses a bilinear filter (see the :ref:`filtering section <theory-pic-filter>`).
+ The default is `1` in all cases, except for simulations in RZ geometry using the FDTD solver.
+ With the RZ PSATD solver, the filtering is done in :math:`k`-space.
+
+ .. warning::
+
+ Known bug: filter currently not working with FDTD solver in RZ geometry (see https://github.com/ECP-WarpX/WarpX/issues/1943).
* ``warpx.filter_npass_each_dir`` (`3 int`) optional (default `1 1 1`)
Number of passes along each direction for the bilinear filter.
diff --git a/Examples/Modules/RigidInjection/inputs_2d_LabFrame b/Examples/Modules/RigidInjection/inputs_2d_LabFrame
index be71eb81b..a444b9954 100644
--- a/Examples/Modules/RigidInjection/inputs_2d_LabFrame
+++ b/Examples/Modules/RigidInjection/inputs_2d_LabFrame
@@ -13,6 +13,7 @@ warpx.do_moving_window = 1
warpx.moving_window_dir = z
warpx.moving_window_v = 1.0 # in units of the speed of light
warpx.serialize_ics = 1
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Modules/dive_cleaning/inputs_3d b/Examples/Modules/dive_cleaning/inputs_3d
index 173e8e468..92b34539a 100644
--- a/Examples/Modules/dive_cleaning/inputs_3d
+++ b/Examples/Modules/dive_cleaning/inputs_3d
@@ -10,6 +10,7 @@ geometry.prob_hi = 50.e-6 50.e-6 50.e-6
warpx.do_dive_cleaning = 1
warpx.do_pml = 1
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py
index d4b5369c7..4d3e00687 100644
--- a/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py
+++ b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py
@@ -60,7 +60,8 @@ part_diag1 = picmi.ParticleDiagnostic(name = 'diag1',
sim = picmi.Simulation(solver = solver,
max_steps = 10,
verbose = 1,
- warpx_current_deposition_algo = 'direct')
+ warpx_current_deposition_algo = 'direct',
+ warpx_use_filter = 0)
sim.add_species(electrons, layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))
sim.add_species(protons, layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))
diff --git a/Examples/Modules/ionization/inputs_2d_bf_rt b/Examples/Modules/ionization/inputs_2d_bf_rt
index e29022889..f1572da10 100644
--- a/Examples/Modules/ionization/inputs_2d_bf_rt
+++ b/Examples/Modules/ionization/inputs_2d_bf_rt
@@ -16,6 +16,7 @@ warpx.moving_window_dir = z
warpx.moving_window_v = 1.0
warpx.gamma_boost = 2.
warpx.boost_direction = z
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Modules/ionization/inputs_2d_rt b/Examples/Modules/ionization/inputs_2d_rt
index 8244093c8..60402eae9 100644
--- a/Examples/Modules/ionization/inputs_2d_rt
+++ b/Examples/Modules/ionization/inputs_2d_rt
@@ -11,6 +11,7 @@ amr.max_level = 0
algo.maxwell_solver = ckc
warpx.do_pml = 1
warpx.cfl = .999
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Modules/laser_injection/inputs_2d_rt b/Examples/Modules/laser_injection/inputs_2d_rt
index 714409e17..294d0f15d 100644
--- a/Examples/Modules/laser_injection/inputs_2d_rt
+++ b/Examples/Modules/laser_injection/inputs_2d_rt
@@ -24,6 +24,7 @@ warpx.verbose = 1
# Algorithms
algo.current_deposition = esirkepov
+warpx.use_filter = 0
# CFL
warpx.cfl = 1.0
diff --git a/Examples/Modules/laser_injection/inputs_3d_rt b/Examples/Modules/laser_injection/inputs_3d_rt
index f3612079b..d2c9ee17a 100644
--- a/Examples/Modules/laser_injection/inputs_3d_rt
+++ b/Examples/Modules/laser_injection/inputs_3d_rt
@@ -24,6 +24,7 @@ warpx.verbose = 1
# Algorithms
warpx.do_pml = 0
+warpx.use_filter = 0
# CFL
warpx.cfl = 1.0
diff --git a/Examples/Modules/qed/schwinger/inputs_3d_schwinger b/Examples/Modules/qed/schwinger/inputs_3d_schwinger
index aaa53af9b..fb1b98286 100644
--- a/Examples/Modules/qed/schwinger/inputs_3d_schwinger
+++ b/Examples/Modules/qed/schwinger/inputs_3d_schwinger
@@ -22,6 +22,7 @@ warpx.verbose = 1
warpx.cfl = 1. # if 1., the time step is set to its CFL limit
warpx.do_pml = 0 # use Perfectly Matched Layer as boundary condition
warpx.serialize_ics = 1
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
index 089d51ff5..903c4f9c4 100755
--- a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
+++ b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
@@ -123,7 +123,8 @@ part_diag1 = picmi.ParticleDiagnostic(name = 'diag1',
sim = picmi.Simulation(solver = solver,
max_steps = max_steps,
verbose = 1,
- warpx_current_deposition_algo = 'esirkepov')
+ warpx_current_deposition_algo = 'esirkepov',
+ warpx_use_filter = 0)
sim.add_species(electrons, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
diff --git a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py
index adb795322..33b93c890 100644
--- a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py
+++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py
@@ -48,7 +48,8 @@ plasma = picmi.Species(particle_type='electron', name='plasma', initial_distribu
sim = picmi.Simulation(solver = solver,
max_steps = max_steps,
verbose = 1,
- warpx_current_deposition_algo = 'esirkepov')
+ warpx_current_deposition_algo = 'esirkepov',
+ warpx_use_filter = 0)
sim.add_species(beam, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
sim.add_species(plasma, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
diff --git a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py
index a26416dbc..8ea29032d 100644
--- a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py
+++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py
@@ -54,7 +54,8 @@ plasma = picmi.Species(particle_type='electron', name='plasma', initial_distribu
sim = picmi.Simulation(solver = solver,
max_steps = 2,
verbose = 1,
- warpx_current_deposition_algo = 'esirkepov')
+ warpx_current_deposition_algo = 'esirkepov',
+ warpx_use_filter = 0)
sim.add_species(beam, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
sim.add_species(plasma, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
diff --git a/Examples/Physics_applications/uniform_plasma/inputs_2d b/Examples/Physics_applications/uniform_plasma/inputs_2d
index 7988df031..a3bd0d3a8 100644
--- a/Examples/Physics_applications/uniform_plasma/inputs_2d
+++ b/Examples/Physics_applications/uniform_plasma/inputs_2d
@@ -17,6 +17,7 @@ geometry.prob_hi = 20.e-6 20.e-6
warpx.serialize_ics = 1
warpx.verbose = 1
warpx.cfl = 1.0
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Tests/ElectrostaticDirichletBC/inputs_2d b/Examples/Tests/ElectrostaticDirichletBC/inputs_2d
index 43705a527..7057c9258 100644
--- a/Examples/Tests/ElectrostaticDirichletBC/inputs_2d
+++ b/Examples/Tests/ElectrostaticDirichletBC/inputs_2d
@@ -3,6 +3,7 @@ warpx.verbose = 0
warpx.const_dt = 7.5e-10
warpx.do_electrostatic = labframe
warpx.self_fields_required_precision = 1e-06
+warpx.use_filter = 0
amr.n_cell = 64 8
amr.max_grid_size = 32
amr.max_level = 0
diff --git a/Examples/Tests/ElectrostaticSphere/inputs_rz b/Examples/Tests/ElectrostaticSphere/inputs_rz
index d9c8feca6..6634fa3f5 100644
--- a/Examples/Tests/ElectrostaticSphere/inputs_rz
+++ b/Examples/Tests/ElectrostaticSphere/inputs_rz
@@ -10,6 +10,7 @@ geometry.prob_hi = 0.5 0.5
warpx.do_pml = 0
warpx.const_dt = 1e-6
warpx.do_electrostatic = labframe
+warpx.use_filter = 0
particles.species_names = electron
diff --git a/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py
index 5f81ab33c..a8b1c5ef2 100644
--- a/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py
+++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py
@@ -79,7 +79,8 @@ part_diag1 = picmi.ParticleDiagnostic(name = 'diag1',
sim = picmi.Simulation(solver = solver,
max_steps = max_steps,
verbose = 1,
- warpx_current_deposition_algo = 'direct')
+ warpx_current_deposition_algo = 'direct',
+ warpx_use_filter = 0)
sim.add_species(electrons,
layout = picmi.GriddedLayout(n_macroparticle_per_cell=number_per_cell_each_dim, grid=grid))
diff --git a/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
index 112862ce6..16a3f0575 100644
--- a/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
+++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
@@ -118,7 +118,8 @@ sim = picmi.Simulation(solver = solver,
verbose = 1,
warpx_current_deposition_algo = 'esirkepov',
warpx_field_gathering_algo = 'energy-conserving',
- warpx_particle_pusher_algo = 'boris')
+ warpx_particle_pusher_algo = 'boris',
+ warpx_use_filter = 0)
sim.add_species(electrons, layout=picmi.GriddedLayout(n_macroparticle_per_cell=[2,16,2], grid=grid))
sim.add_species(protons, layout=picmi.GriddedLayout(n_macroparticle_per_cell=[2,16,2], grid=grid))
diff --git a/Examples/Tests/Langmuir/inputs_2d_multi_rt b/Examples/Tests/Langmuir/inputs_2d_multi_rt
index 91eb0c345..35b8c9fac 100644
--- a/Examples/Tests/Langmuir/inputs_2d_multi_rt
+++ b/Examples/Tests/Langmuir/inputs_2d_multi_rt
@@ -25,6 +25,7 @@ warpx.verbose = 1
# Algorithms
algo.field_gathering = energy-conserving
warpx.do_pml = 0
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Tests/Langmuir/inputs_2d_multi_rz_rt b/Examples/Tests/Langmuir/inputs_2d_multi_rz_rt
index 78e0a3694..f133cdcb7 100644
--- a/Examples/Tests/Langmuir/inputs_2d_multi_rz_rt
+++ b/Examples/Tests/Langmuir/inputs_2d_multi_rz_rt
@@ -27,6 +27,7 @@ warpx.verbose = 1
warpx.do_pml = 0
algo.field_gathering = energy-conserving
algo.current_deposition = esirkepov
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Tests/Langmuir/inputs_3d_multi_rt b/Examples/Tests/Langmuir/inputs_3d_multi_rt
index 16bceeb43..4d08a2a43 100644
--- a/Examples/Tests/Langmuir/inputs_3d_multi_rt
+++ b/Examples/Tests/Langmuir/inputs_3d_multi_rt
@@ -26,6 +26,7 @@ warpx.verbose = 1
algo.current_deposition = esirkepov
algo.field_gathering = energy-conserving
warpx.do_pml = 0
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Tests/Larmor/inputs_2d_mr b/Examples/Tests/Larmor/inputs_2d_mr
index 9fa5157a9..7431180d6 100644
--- a/Examples/Tests/Larmor/inputs_2d_mr
+++ b/Examples/Tests/Larmor/inputs_2d_mr
@@ -34,6 +34,7 @@ particles.B_external_particle = 0.0 0.00078110417851950768 0.0
warpx.verbose = 1
# Algorithms
+warpx.use_filter = 0
# CFL
warpx.cfl = 1.0
diff --git a/Examples/Tests/PML/inputs_2d b/Examples/Tests/PML/inputs_2d
index d4d84f7aa..3284e98fd 100644
--- a/Examples/Tests/PML/inputs_2d
+++ b/Examples/Tests/PML/inputs_2d
@@ -21,9 +21,9 @@ geometry.prob_hi = 30.e-6 120.e-6
warpx.verbose = 1
# Algorithms
-
warpx.cfl = 1.0
warpx.do_pml = 1
+warpx.use_filter = 0
warpx.do_moving_window = 0
# warpx.moving_window_dir = z
diff --git a/Examples/Tests/SilverMueller/inputs_2d_x b/Examples/Tests/SilverMueller/inputs_2d_x
index 431315421..708fcd0fe 100644
--- a/Examples/Tests/SilverMueller/inputs_2d_x
+++ b/Examples/Tests/SilverMueller/inputs_2d_x
@@ -21,10 +21,10 @@ geometry.prob_hi = 20.e-6 40.e-6
warpx.verbose = 1
# Algorithms
-
warpx.cfl = 1.0
warpx.do_pml = 0
warpx.do_silver_mueller = 1
+warpx.use_filter = 0
warpx.do_moving_window = 0
# warpx.moving_window_dir = z
diff --git a/Examples/Tests/SilverMueller/inputs_2d_z b/Examples/Tests/SilverMueller/inputs_2d_z
index 266423ad7..e14f35ecf 100644
--- a/Examples/Tests/SilverMueller/inputs_2d_z
+++ b/Examples/Tests/SilverMueller/inputs_2d_z
@@ -21,10 +21,10 @@ geometry.prob_hi = 40.e-6 20.e-6
warpx.verbose = 1
# Algorithms
-
warpx.cfl = 1.0
warpx.do_pml = 0
warpx.do_silver_mueller = 1
+warpx.use_filter = 0
warpx.do_moving_window = 0
# warpx.moving_window_dir = z
diff --git a/Examples/Tests/SilverMueller/inputs_rz_z b/Examples/Tests/SilverMueller/inputs_rz_z
index ccb10d528..1b4e846b0 100644
--- a/Examples/Tests/SilverMueller/inputs_rz_z
+++ b/Examples/Tests/SilverMueller/inputs_rz_z
@@ -22,10 +22,10 @@ warpx.verbose = 1
warpx.n_rz_azimuthal_modes = 2
# Algorithms
-
warpx.cfl = 1.0
warpx.do_pml = 0
warpx.do_silver_mueller = 1
+warpx.use_filter = 0
warpx.do_moving_window = 0
diff --git a/Examples/Tests/initial_distribution/inputs b/Examples/Tests/initial_distribution/inputs
index 50999b3ea..cb12f251f 100644
--- a/Examples/Tests/initial_distribution/inputs
+++ b/Examples/Tests/initial_distribution/inputs
@@ -17,6 +17,7 @@ warpx.do_pml = 0
#################################
warpx.verbose = 1
warpx.cfl = 1.e-8
+warpx.use_filter = 0
# Order of particle shape factors
algo.particle_shape = 1
diff --git a/Examples/Tests/laser_on_fine/inputs_2d b/Examples/Tests/laser_on_fine/inputs_2d
index b8ae4e2d2..e973c126e 100644
--- a/Examples/Tests/laser_on_fine/inputs_2d
+++ b/Examples/Tests/laser_on_fine/inputs_2d
@@ -34,6 +34,7 @@ warpx.verbose = 1
algo.current_deposition = esirkepov
algo.charge_deposition = standard
algo.field_gathering = energy-conserving
+warpx.use_filter = 0
# CFL
warpx.cfl = 1.0
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
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 927feb900..21cc5e4db 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -142,8 +142,8 @@ int WarpX::current_centering_noz = 2;
bool WarpX::use_fdtd_nci_corr = false;
bool WarpX::galerkin_interpolation = true;
-bool WarpX::use_filter = false;
-bool WarpX::use_kspace_filter = false;
+bool WarpX::use_filter = true;
+bool WarpX::use_kspace_filter = true;
bool WarpX::use_filter_compensation = false;
bool WarpX::serialize_ics = false;
@@ -556,6 +556,12 @@ WarpX::ReadParameters ()
pp_warpx.query("n_buffer", n_buffer);
pp_warpx.query("const_dt", const_dt);
+ // Filter currently not working with FDTD solver in RZ geometry: turn OFF by default
+ // (see https://github.com/ECP-WarpX/WarpX/issues/1943)
+#ifdef WARPX_DIM_RZ
+ if (WarpX::maxwell_solver_id != MaxwellSolverAlgo::PSATD) WarpX::use_filter = false;
+#endif
+
// Read filter and fill IntVect filter_npass_each_dir with
// proper size for AMREX_SPACEDIM
pp_warpx.query("use_filter", use_filter);
@@ -568,12 +574,26 @@ WarpX::ReadParameters ()
filter_npass_each_dir[2] = parse_filter_npass_each_dir[2];
#endif
+ // TODO When k-space filtering will be implemented also for Cartesian geometries,
+ // this code block will have to be applied in all cases (remove #ifdef condition)
#ifdef WARPX_DIM_RZ
if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::PSATD) {
// With RZ spectral, only use k-space filtering
use_kspace_filter = use_filter;
use_filter = false;
}
+ else // FDTD
+ {
+ // Filter currently not working with FDTD solver in RZ geometry
+ // (see https://github.com/ECP-WarpX/WarpX/issues/1943)
+ if (use_filter)
+ {
+ amrex::Print() << "\nWARNING:"
+ << "\nFilter currently not working with FDTD solver in RZ geometry:"
+ << "\nwe recommend setting warpx.use_filter = 0 in the input file.\n"
+ << std::endl;
+ }
+ }
#endif
pp_warpx.query("num_mirrors", num_mirrors);