aboutsummaryrefslogtreecommitdiff
path: root/Source/Evolve/WarpXEvolveEM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Evolve/WarpXEvolveEM.cpp')
-rw-r--r--Source/Evolve/WarpXEvolveEM.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Evolve/WarpXEvolveEM.cpp b/Source/Evolve/WarpXEvolveEM.cpp
index dcf984bdf..366be28d2 100644
--- a/Source/Evolve/WarpXEvolveEM.cpp
+++ b/Source/Evolve/WarpXEvolveEM.cpp
@@ -376,6 +376,8 @@ WarpX::OneStep_nosub (Real cur_time)
* steps of the fine grid.
*
*/
+
+
void
WarpX::OneStep_sub1 (Real curtime)
{
@@ -502,6 +504,13 @@ WarpX::OneStep_sub1 (Real curtime)
EvolveF(coarse_lev, PatchType::fine, 0.5*dt[coarse_lev], DtType::SecondHalf);
if (do_pml) {
+ if (do_moving_window & field_gathering_algo == GatheringAlgo::MomentumConserving){
+ // Exchance guard cells of PMLs only (0 cells are exchanged for the
+ // regular B field MultiFab). This is required as B has just been
+ // evolved and one guard cell is needed for the averaging
+ // in momentum-conserving gather.
+ FillBoundaryB(coarse_lev, PatchType::fine, IntVect::TheZeroVector());
+ }
DampPML(coarse_lev, PatchType::fine);
}
}