aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization/WarpXComm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Parallelization/WarpXComm.cpp')
-rw-r--r--Source/Parallelization/WarpXComm.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/Source/Parallelization/WarpXComm.cpp b/Source/Parallelization/WarpXComm.cpp
index 4131b7307..992583862 100644
--- a/Source/Parallelization/WarpXComm.cpp
+++ b/Source/Parallelization/WarpXComm.cpp
@@ -1156,3 +1156,69 @@ void WarpX::NodalSyncPML (int lev, PatchType patch_type)
}
}
}
+
+void WarpX::NodalSyncE ()
+{
+ if (!override_sync_intervals.contains(istep[0]) && !do_pml) return;
+
+ for (int lev = 0; lev <= finest_level; lev++) {
+ NodalSyncE(lev);
+ }
+}
+
+void WarpX::NodalSyncE (int lev)
+{
+ NodalSyncE(lev, PatchType::fine);
+ if (lev > 0) NodalSyncE(lev, PatchType::coarse);
+}
+
+void WarpX::NodalSyncE (int lev, PatchType patch_type)
+{
+ if (patch_type == PatchType::fine)
+ {
+ const auto& period = Geom(lev).periodicity();
+ Efield_fp[lev][0]->OverrideSync(period);
+ Efield_fp[lev][1]->OverrideSync(period);
+ Efield_fp[lev][2]->OverrideSync(period);
+ }
+ else if (patch_type == PatchType::coarse)
+ {
+ const auto& cperiod = Geom(lev-1).periodicity();
+ Efield_cp[lev][0]->OverrideSync(cperiod);
+ Efield_cp[lev][1]->OverrideSync(cperiod);
+ Efield_cp[lev][2]->OverrideSync(cperiod);
+ }
+}
+
+void WarpX::NodalSyncB ()
+{
+ if (!override_sync_intervals.contains(istep[0]) && !do_pml) return;
+
+ for (int lev = 0; lev <= finest_level; lev++) {
+ NodalSyncB(lev);
+ }
+}
+
+void WarpX::NodalSyncB (int lev)
+{
+ NodalSyncB(lev, PatchType::fine);
+ if (lev > 0) NodalSyncB(lev, PatchType::coarse);
+}
+
+void WarpX::NodalSyncB (int lev, PatchType patch_type)
+{
+ if (patch_type == PatchType::fine)
+ {
+ const auto& period = Geom(lev).periodicity();
+ Bfield_fp[lev][0]->OverrideSync(period);
+ Bfield_fp[lev][1]->OverrideSync(period);
+ Bfield_fp[lev][2]->OverrideSync(period);
+ }
+ else if (patch_type == PatchType::coarse)
+ {
+ const auto& cperiod = Geom(lev-1).periodicity();
+ Bfield_cp[lev][0]->OverrideSync(cperiod);
+ Bfield_cp[lev][1]->OverrideSync(cperiod);
+ Bfield_cp[lev][2]->OverrideSync(cperiod);
+ }
+}