aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2021-09-20 22:32:33 -0700
committerGravatar GitHub <noreply@github.com> 2021-09-21 05:32:33 +0000
commit52e2620d3ae28623c114707ce230d867dc8d4c9d (patch)
tree997e4a17ef02ca15c8fe22479f4513d028162ba7 /Source/Diagnostics/FlushFormats/FlushFormatCheckpoint.cpp
parent547885b587d181fbbef9b889618288d5d4de4dff (diff)
downloadWarpX-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.cpp36
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),