aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/WarpXOpenPMD.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/WarpXOpenPMD.cpp')
-rw-r--r--Source/Diagnostics/WarpXOpenPMD.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/Diagnostics/WarpXOpenPMD.cpp b/Source/Diagnostics/WarpXOpenPMD.cpp
index 6f76906e3..cacf6367d 100644
--- a/Source/Diagnostics/WarpXOpenPMD.cpp
+++ b/Source/Diagnostics/WarpXOpenPMD.cpp
@@ -16,7 +16,7 @@
#include <sstream>
#include <tuple>
#include <utility>
-
+#include <iostream>
namespace detail
{
@@ -140,12 +140,19 @@ void WarpXOpenPMDPlot::GetFileName(std::string& filename)
void WarpXOpenPMDPlot::SetStep(int ts)
{
- if (ts < 0)
- return;
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(ts >= 0 , "openPMD iterations are unsigned");
+
+ if (m_CurrentStep >= ts) {
+ // note m_Series is reset in Init(), so using m_Series->iterations.contains(ts) is only able to check the
+ // last written step in m_Series's life time, but not other earlier written steps by other m_Series
+ std::string warnMsg = " Warning from openPMD writer: Already written iteration:"+std::to_string(ts);
+ std::cout<<warnMsg<<std::endl;
+ amrex::Warning(warnMsg);
+ }
- m_CurrentStep = ts;
+ m_CurrentStep = ts;
+ Init(openPMD::AccessType::CREATE);
- Init(openPMD::AccessType::CREATE);
}
void