diff options
author | 2021-09-20 22:32:33 -0700 | |
---|---|---|
committer | 2021-09-21 05:32:33 +0000 | |
commit | 52e2620d3ae28623c114707ce230d867dc8d4c9d (patch) | |
tree | 997e4a17ef02ca15c8fe22479f4513d028162ba7 /Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp | |
parent | 547885b587d181fbbef9b889618288d5d4de4dff (diff) | |
download | WarpX-52e2620d3ae28623c114707ce230d867dc8d4c9d.tar.gz WarpX-52e2620d3ae28623c114707ce230d867dc8d4c9d.tar.zst WarpX-52e2620d3ae28623c114707ce230d867dc8d4c9d.zip |
Fix Bug in PSATD Restart with Time Averaging (#2318)
* Fix Bug in PSATD Restart with Time Averaging
* PSATD Time Avg Restart: Add CI Test
- restart test
- use recommended boundary conditions for the spectral solver in z
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp')
-rw-r--r-- | Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp b/Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp index 0268d214e..9987913e2 100644 --- a/Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp +++ b/Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp @@ -68,6 +68,24 @@ FlushFormatCheckpoint::WriteToFile ( amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "By_fp")); VisMF::Write(warpx.getBfield_fp(lev, 2), amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bz_fp")); + + if (WarpX::fft_do_time_averaging) + { + VisMF::Write(warpx.getEfield_avg_fp(lev, 0), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ex_avg_fp")); + VisMF::Write(warpx.getEfield_avg_fp(lev, 1), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ey_avg_fp")); + VisMF::Write(warpx.getEfield_avg_fp(lev, 2), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ez_avg_fp")); + + VisMF::Write(warpx.getBfield_avg_fp(lev, 0), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bx_avg_fp")); + VisMF::Write(warpx.getBfield_avg_fp(lev, 1), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "By_avg_fp")); + VisMF::Write(warpx.getBfield_avg_fp(lev, 2), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bz_avg_fp")); + } + if (warpx.getis_synchronized()) { // Need to save j if synchronized because after restart we need j to evolve E by dt/2. VisMF::Write(warpx.getcurrent_fp(lev, 0), @@ -92,6 +110,24 @@ FlushFormatCheckpoint::WriteToFile ( amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "By_cp")); VisMF::Write(warpx.getBfield_cp(lev, 2), amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bz_cp")); + + if (WarpX::fft_do_time_averaging) + { + VisMF::Write(warpx.getEfield_avg_cp(lev, 0), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ex_avg_cp")); + VisMF::Write(warpx.getEfield_avg_cp(lev, 1), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ey_avg_cp")); + VisMF::Write(warpx.getEfield_avg_cp(lev, 2), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Ez_avg_cp")); + + VisMF::Write(warpx.getBfield_avg_cp(lev, 0), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bx_avg_cp")); + VisMF::Write(warpx.getBfield_avg_cp(lev, 1), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "By_avg_cp")); + VisMF::Write(warpx.getBfield_avg_cp(lev, 2), + amrex::MultiFabFileFullPrefix(lev, checkpointname, default_level_prefix, "Bz_avg_cp")); + } + if (warpx.getis_synchronized()) { // Need to save j if synchronized because after restart we need j to evolve E by dt/2. VisMF::Write(warpx.getcurrent_cp(lev, 0), |