aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/WarpXPushFieldsEM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/WarpXPushFieldsEM.cpp')
-rw-r--r--Source/FieldSolver/WarpXPushFieldsEM.cpp9
1 files changed, 7 insertions, 2 deletions
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();
}