diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp index b2d3fa67c19..b3709127d1c 100644 --- a/Source/WarpX.cpp +++ b/Source/WarpX.cpp @@ -329,6 +329,9 @@ void WarpX::Finalize() { WarpX::ResetInstance(); + + // Clear all of the warning messages + ablastr::warn_manager::WMClear(); } WarpX::WarpX () diff --git a/Source/ablastr/utils/msg_logger/MsgLogger.H b/Source/ablastr/utils/msg_logger/MsgLogger.H index 088a613bc87..2e1ce7365a2 100644 --- a/Source/ablastr/utils/msg_logger/MsgLogger.H +++ b/Source/ablastr/utils/msg_logger/MsgLogger.H @@ -224,6 +224,11 @@ namespace ablastr::utils::msg_logger [[nodiscard]] std::vector collective_gather_msgs_with_counter_and_ranks() const; + /** + * \brief Clear all messages + */ + void clear() { m_messages.clear(); } + private: /** diff --git a/Source/ablastr/warn_manager/WarnManager.H b/Source/ablastr/warn_manager/WarnManager.H index 56ff1bf1a1a..c9f0eedcbd1 100644 --- a/Source/ablastr/warn_manager/WarnManager.H +++ b/Source/ablastr/warn_manager/WarnManager.H @@ -74,6 +74,9 @@ namespace ablastr::warn_manager */ ~WarnManager() = default; + /** + * \brief Return the static WarnManager singleton + */ static WarnManager& GetInstance(); /** @@ -145,6 +148,11 @@ namespace ablastr::warn_manager */ void debug_read_warnings_from_input(const amrex::ParmParse& params); + /** + * \brief Clear all warning messages + */ + void Clear(); + static const int warn_line_size = 80 /*! Maximum line length to be used in formatting warning list*/; static const int warn_tab_size = 5 /*! Tabulation size to be used in formatting warning list*/; @@ -228,6 +236,11 @@ namespace ablastr::warn_manager const std::string& topic, const std::string& text, const WarnPriority& priority = WarnPriority::medium); + + /** + * \brief Clear all warning messages + */ + void WMClear(); } #endif //ABLASTR_WARN_MANAGER_H_ diff --git a/Source/ablastr/warn_manager/WarnManager.cpp b/Source/ablastr/warn_manager/WarnManager.cpp index e7544c7a3a4..76a272ff83f 100644 --- a/Source/ablastr/warn_manager/WarnManager.cpp +++ b/Source/ablastr/warn_manager/WarnManager.cpp @@ -312,6 +312,11 @@ WarnManager::MsgFormatter( return ss_out.str(); } +void WarnManager::Clear() +{ + m_p_logger->clear(); +} + WarnManager& ablastr::warn_manager::GetWMInstance() { return WarnManager::GetInstance(); @@ -325,3 +330,8 @@ void ablastr::warn_manager::WMRecordWarning( WarnManager::GetInstance().RecordWarning( topic, text, priority); } + +void ablastr::warn_manager::WMClear() +{ + WarnManager::GetInstance().Clear(); +}