aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/Evolve/WarpXEvolve.cpp7
-rw-r--r--Source/FieldSolver/WarpXPushFieldsEM.cpp9
2 files changed, 14 insertions, 2 deletions
diff --git a/Source/Evolve/WarpXEvolve.cpp b/Source/Evolve/WarpXEvolve.cpp
index 42042b7c7..5c3883007 100644
--- a/Source/Evolve/WarpXEvolve.cpp
+++ b/Source/Evolve/WarpXEvolve.cpp
@@ -501,6 +501,13 @@ void WarpX::SyncCurrentAndRho ()
SyncCurrent(current_fp, current_cp);
SyncRho();
}
+
+ if (current_deposition_algo == CurrentDepositionAlgo::Vay)
+ {
+ // TODO This works only without mesh refinement
+ const int lev = 0;
+ if (use_filter) ApplyFilterJ(current_fp_vay, lev);
+ }
}
}
else // FDTD
diff --git a/Source/FieldSolver/WarpXPushFieldsEM.cpp b/Source/FieldSolver/WarpXPushFieldsEM.cpp
index a3a882962..3d68e8e52 100644
--- a/Source/FieldSolver/WarpXPushFieldsEM.cpp
+++ b/Source/FieldSolver/WarpXPushFieldsEM.cpp
@@ -724,8 +724,13 @@ WarpX::PushPSATD ()
PSATDBackwardTransformJ(current_fp, current_cp);
PSATDSubtractCurrentPartialSumsAvg();
- // Synchronize J and rho (if used)
- SyncCurrent(current_fp, current_cp);
+ // Synchronize J and rho (if used).
+ // Here we call SumBoundaryJ instead of SyncCurrent, because
+ // filtering has been already applied to D in OneStep_nosub,
+ // by calling SyncCurrentAndRho (see Evolve/WarpXEvolve.cpp).
+ // TODO This works only without mesh refinement
+ const int lev = 0;
+ SumBoundaryJ(current_fp, lev, Geom(lev).periodicity());
SyncRho();
}