OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SourceResultHistory.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
11
12#pragma once
13#include <map>
14#include <cstdint>
15#include <string>
16#include <vector>
17
18namespace openswmm::twoD {
20
24 std::vector<std::string> fields, units;
25 std::vector<std::vector<double>> columns;
32 std::size_t rows() const { return columns.empty() ? 0 : columns.front().size(); }
33};
34
42public:
55 std::string append(const CommonSourceStage&);
66 std::string resume(const CommonSourceStage&);
74 const std::map<std::string, SourceResultTable>& tables() const { return tables_; }
82 const std::vector<std::string>& sourceNames() const { return sources_; }
90 const std::vector<std::string>& pollutantNames() const { return pollutants_; }
98 const std::vector<std::string>& pollutantMassUnits() const { return mass_units_; }
108 bool outfallReturnsAvailable() const { return outfall_returns_; }
123 std::string save(const std::string& path) const;
141 static std::string read(const std::string& path, SourceResultHistory& out, bool& available);
142
143private:
144 friend struct SourceResultFile;
148 void appendRows(const CommonSourceStage&, std::size_t frame, double start);
149 static SourceResultHistory projection(const CommonSourceStage&, std::size_t frame,
150 double start);
153 std::string refreshCheckpointMatch(const CommonSourceStage&);
154 void initializeIdentity(const CommonSourceStage&);
155 std::string resumeCapturedBoundary(const CommonSourceStage&);
169 std::string writeIntoOpenResult(std::int64_t file) const; // engine's HDF5 instance only
170 std::string extends(const SourceResultHistory& prefix) const;
171 static std::map<std::string, SourceResultTable> schema(bool outfall_returns = false);
172 std::string validate() const;
173 const CommonSourceStage* stage_ = nullptr;
174 bool outfall_returns_ = false;
175 std::string model_, boundary_;
176 std::vector<std::string> sources_, pollutants_, mass_units_;
177 std::map<std::string, SourceResultTable> tables_;
178};
179}
Definition CommonSourceStage.hpp:44
Definition SourceResultHistory.hpp:41
const std::vector< std::string > & sourceNames() const
Borrow this history's saved source names indexed by source identifiers.
Definition SourceResultHistory.hpp:82
friend class ExplicitInertialSolver
Definition SourceResultHistory.hpp:152
friend class Default2DOutputPlugin
Definition SourceResultHistory.hpp:151
std::string resume(const CommonSourceStage &)
Rebind only an exact component-checkpoint match and verified final diagnostic projection....
Definition SourceResultHistory.cpp:551
std::string append(const CommonSourceStage &)
Capture frame zero or the next accepted source interval with transactional history publication.
Definition SourceResultHistory.cpp:441
friend class EngineSourceResultStream
Definition SourceResultHistory.hpp:147
static std::string read(const std::string &path, SourceResultHistory &out, bool &available)
An older HDF5 file without /source_history is successfully unavailable. Failure/unavailability preser...
Definition SourceResultHdf5.cpp:757
std::string save(const std::string &path) const
Standalone HDF5 result artifact; atomically replaces ONLY this artifact. Never pass an existing hydra...
Definition SourceResultHdf5.cpp:754
const std::vector< std::string > & pollutantMassUnits() const
Borrow this history's saved per-pollutant native_concentration*m3 unit labels.
Definition SourceResultHistory.hpp:98
bool outfallReturnsAvailable() const
Optional water-only hydraulic-return diagnostics. Older histories and profile-off runs have no such c...
Definition SourceResultHistory.hpp:108
friend class EngineSourceResultHistory
Definition SourceResultHistory.hpp:146
friend struct EngineSourceResultFile
Definition SourceResultHistory.hpp:145
friend struct SourceResultFile
Definition SourceResultHistory.hpp:144
const std::vector< std::string > & pollutantNames() const
Borrow this history's saved pollutant names indexed by species identifiers.
Definition SourceResultHistory.hpp:90
const std::map< std::string, SourceResultTable > & tables() const
Borrow this history's columnar tables and their field/unit schemas.
Definition SourceResultHistory.hpp:74
Definition ExchangeLaw.hpp:60
Definition SourceResultHistory.hpp:23
std::size_t rows() const
Read the first column's row count without validating the remaining columns.
Definition SourceResultHistory.hpp:32
std::vector< std::vector< double > > columns
Definition SourceResultHistory.hpp:25
std::vector< std::string > fields
Definition SourceResultHistory.hpp:24
std::vector< std::string > units
Definition SourceResultHistory.hpp:24