diff options
Diffstat (limited to 'Source/FieldSolver')
-rw-r--r-- | Source/FieldSolver/WarpXPushFieldsEM.cpp | 9 |
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(); } |