diff options
author | 2017-06-06 09:21:51 -0700 | |
---|---|---|
committer | 2017-06-06 09:21:51 -0700 | |
commit | 98d24e52a63d16a97301d742429e40982b12d106 (patch) | |
tree | 625d47ebfcd0dfd64884ee1829aaf4869bdf2392 /Source/WarpXPML.cpp | |
parent | f6859a5359a65a0367e18d5992b4023a7c919133 (diff) | |
download | WarpX-98d24e52a63d16a97301d742429e40982b12d106.tar.gz WarpX-98d24e52a63d16a97301d742429e40982b12d106.tar.zst WarpX-98d24e52a63d16a97301d742429e40982b12d106.zip |
fix restart
Diffstat (limited to 'Source/WarpXPML.cpp')
-rw-r--r-- | Source/WarpXPML.cpp | 49 |
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"); + } +} |