aboutsummaryrefslogtreecommitdiff
path: root/Source/WarpXPML.cpp
diff options
context:
space:
mode:
authorGravatar Weiqun Zhang <weiqunzhang@lbl.gov> 2017-06-06 09:21:51 -0700
committerGravatar Weiqun Zhang <weiqunzhang@lbl.gov> 2017-06-06 09:21:51 -0700
commit98d24e52a63d16a97301d742429e40982b12d106 (patch)
tree625d47ebfcd0dfd64884ee1829aaf4869bdf2392 /Source/WarpXPML.cpp
parentf6859a5359a65a0367e18d5992b4023a7c919133 (diff)
downloadWarpX-98d24e52a63d16a97301d742429e40982b12d106.tar.gz
WarpX-98d24e52a63d16a97301d742429e40982b12d106.tar.zst
WarpX-98d24e52a63d16a97301d742429e40982b12d106.zip
fix restart
Diffstat (limited to 'Source/WarpXPML.cpp')
-rw-r--r--Source/WarpXPML.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/Source/WarpXPML.cpp b/Source/WarpXPML.cpp
index 7f005eb70..949a44a89 100644
--- a/Source/WarpXPML.cpp
+++ b/Source/WarpXPML.cpp
@@ -4,6 +4,7 @@
#include <WarpXConst.H>
#include <AMReX_Print.H>
+#include <AMReX_VisMF.H>
#include <algorithm>
@@ -602,3 +603,51 @@ PML::FillBoundaryB ()
pml_B_cp[2]->FillBoundary(period);
}
}
+
+void
+PML::CheckPoint (const std::string& dir) const
+{
+ if (pml_E_fp[0])
+ {
+ VisMF::Write(*pml_E_fp[0], dir+"_Ex_fp");
+ VisMF::Write(*pml_E_fp[1], dir+"_Ey_fp");
+ VisMF::Write(*pml_E_fp[2], dir+"_Ez_fp");
+ VisMF::Write(*pml_B_fp[0], dir+"_Bx_fp");
+ VisMF::Write(*pml_B_fp[1], dir+"_By_fp");
+ VisMF::Write(*pml_B_fp[2], dir+"_Bz_fp");
+ }
+
+ if (pml_E_cp[0])
+ {
+ VisMF::Write(*pml_E_cp[0], dir+"_Ex_cp");
+ VisMF::Write(*pml_E_cp[1], dir+"_Ey_cp");
+ VisMF::Write(*pml_E_cp[2], dir+"_Ez_cp");
+ VisMF::Write(*pml_B_cp[0], dir+"_Bx_cp");
+ VisMF::Write(*pml_B_cp[1], dir+"_By_cp");
+ VisMF::Write(*pml_B_cp[2], dir+"_Bz_cp");
+ }
+}
+
+void
+PML::Restart (const std::string& dir)
+{
+ if (pml_E_fp[0])
+ {
+ VisMF::Read(*pml_E_fp[0], dir+"_Ex_fp");
+ VisMF::Read(*pml_E_fp[1], dir+"_Ey_fp");
+ VisMF::Read(*pml_E_fp[2], dir+"_Ez_fp");
+ VisMF::Read(*pml_B_fp[0], dir+"_Bx_fp");
+ VisMF::Read(*pml_B_fp[1], dir+"_By_fp");
+ VisMF::Read(*pml_B_fp[2], dir+"_Bz_fp");
+ }
+
+ if (pml_E_cp[0])
+ {
+ VisMF::Read(*pml_E_cp[0], dir+"_Ex_cp");
+ VisMF::Read(*pml_E_cp[1], dir+"_Ey_cp");
+ VisMF::Read(*pml_E_cp[2], dir+"_Ez_cp");
+ VisMF::Read(*pml_B_cp[0], dir+"_Bx_cp");
+ VisMF::Read(*pml_B_cp[1], dir+"_By_cp");
+ VisMF::Read(*pml_B_cp[2], dir+"_Bz_cp");
+ }
+}