aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/BTDiagnostics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/BTDiagnostics.cpp')
-rw-r--r--Source/Diagnostics/BTDiagnostics.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/Source/Diagnostics/BTDiagnostics.cpp b/Source/Diagnostics/BTDiagnostics.cpp
index 1bd200fb4..beb367309 100644
--- a/Source/Diagnostics/BTDiagnostics.cpp
+++ b/Source/Diagnostics/BTDiagnostics.cpp
@@ -161,8 +161,18 @@ BTDiagnostics::ReadParameters ()
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(m_do_back_transformed_fields, " fields must be turned on for the new back-transformed diagnostics");
if (m_do_back_transformed_fields == false) m_varnames.clear();
- getWithParser(pp_diag_name, "num_snapshots_lab", m_num_snapshots_lab);
- m_num_buffers = m_num_snapshots_lab;
+
+ std::vector<std::string> intervals_string_vec = {"0"};
+ bool const num_snapshots_specified = queryWithParser(pp_diag_name, "num_snapshots_lab", m_num_snapshots_lab);
+ bool const intervals_specified = pp_diag_name.queryarr("intervals", intervals_string_vec);
+ if (num_snapshots_specified)
+ {
+ WARPX_ALWAYS_ASSERT_WITH_MESSAGE(!intervals_specified,
+ "For back-transformed diagnostics, user should specify either num_snapshots_lab or intervals, not both");
+ intervals_string_vec = {":" + std::to_string(m_num_snapshots_lab-1)};
+ }
+ m_intervals = BTDIntervalsParser(intervals_string_vec);
+ m_num_buffers = m_intervals.NumSnapshots();
// Read either dz_snapshots_lab or dt_snapshots_lab
bool snapshot_interval_is_specified = false;
@@ -241,7 +251,7 @@ BTDiagnostics::InitializeBufferData ( int i_buffer , int lev)
auto & warpx = WarpX::GetInstance();
// Lab-frame time for the i^th snapshot
amrex::Real zmax_0 = warpx.Geom(lev).ProbHi(m_moving_window_dir);
- m_t_lab.at(i_buffer) = i_buffer * m_dt_snapshots_lab
+ m_t_lab.at(i_buffer) = m_intervals.GetBTDIteration(i_buffer) * m_dt_snapshots_lab
+ m_gamma_boost*m_beta_boost*zmax_0/PhysConst::c;
// Define buffer domain in boosted frame at level, lev, with user-defined lo and hi