OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
EngineSourceResultHistory.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
11
12#pragma once
14
15namespace openswmm {
16class SWMMEngine;
17}
18namespace openswmm::twoD {
24public:
31 const std::map<std::string, SourceResultTable>& tables() const { return tables_; }
38 const std::vector<std::string>& sourceNames() const { return sources_; }
45 const std::vector<std::string>& nodeNames() const { return nodes_; }
51 bool outfallReturnsAvailable() const { return outfall_returns_; }
57 bool detailedSourceIntervalsAvailable() const { return detailed_; }
58 // Immutable source-interval snapshots, on their own frame/time axis.
59 // Resume through the containing engine history, never a component restore.
68 return detailed_ ? &source_intervals_ : nullptr;
69 }
70
76 double simulationStartDate() const { return start_date_; } // SWMM date serial
91 std::string save(const std::string& path) const;
106 static std::string read(const std::string& path, EngineSourceResultHistory& out,
107 bool& available);
108
109private:
114 static std::map<std::string, SourceResultTable> schema(bool outfall_returns,
115 bool lid_beds = false);
133 static EngineSourceResultHistory projection(const openswmm::SWMMEngine& e, std::size_t frame,
134 double start);
151 std::string append(const openswmm::SWMMEngine& e, double start);
166 std::string resume(const openswmm::SWMMEngine& e);
167 std::string validate() const;
168 std::string captureSourceInterval(const CommonSourceStage&);
169 std::string validatePairing() const;
170 const openswmm::SWMMEngine* engine_ = nullptr;
171 bool outfall_returns_ = false;
172 bool lid_beds_ = false;
173 bool detailed_ = false;
174 SourceResultHistory source_intervals_;
175 double start_date_ = 0;
176 std::string boundary_;
177 std::vector<std::string> sources_, nodes_;
178 std::map<std::string, SourceResultTable> tables_;
179};
180}
Columnar source diagnostics and saved identifier tables.
Definition CommonSourceStage.hpp:44
Definition EngineSourceResultHistory.hpp:23
double simulationStartDate() const
Read the saved absolute simulation start serial.
Definition EngineSourceResultHistory.hpp:76
friend class ExplicitInertialSolver
Definition EngineSourceResultHistory.hpp:112
bool outfallReturnsAvailable() const
Test availability of water-only hydraulic-return snapshots.
Definition EngineSourceResultHistory.hpp:51
const std::map< std::string, SourceResultTable > & tables() const
Borrow this recorder's columnar engine-boundary tables with field/unit schemas.
Definition EngineSourceResultHistory.hpp:31
friend class EngineSourceResultStream
Definition EngineSourceResultHistory.hpp:113
const SourceResultHistory * sourceIntervals() const
Borrow the fine source-interval companion on its own accepted-source time axis.
Definition EngineSourceResultHistory.hpp:67
const std::vector< std::string > & sourceNames() const
Borrow this recorder's saved source identifier names.
Definition EngineSourceResultHistory.hpp:38
friend struct EngineSourceResultFile
Definition EngineSourceResultHistory.hpp:111
bool detailedSourceIntervalsAvailable() const
Test whether this history includes immutable fine source-interval snapshots.
Definition EngineSourceResultHistory.hpp:57
friend class openswmm::SWMMEngine
Definition EngineSourceResultHistory.hpp:110
static std::string read(const std::string &path, EngineSourceResultHistory &out, bool &available)
Read optional engine source history into a privately validated candidate.
Definition SourceResultHdf5.cpp:764
const std::vector< std::string > & nodeNames() const
Borrow this recorder's saved node identifier names.
Definition EngineSourceResultHistory.hpp:45
std::string save(const std::string &path) const
Atomically replaces ONLY a standalone companion history artifact.
Definition SourceResultHdf5.cpp:761
Definition SourceResultHistory.hpp:41
Definition ExchangeLaw.hpp:60
Definition ExchangeLaw.hpp:60