7#ifndef SIMULATIONRUNNER_H
8#define SIMULATIONRUNNER_H
36 const QString &instanceName,
38 const QString &rptPath,
40 const QString &engineVersion =
"6.0.0",
41 QObject *
parent =
nullptr);
58 bool isPaused()
const {
return m_paused.load(); }
60 int jobId()
const {
return m_jobId; }
61 QString
outPath()
const {
return m_outPath; }
62 QString
inpPath()
const {
return m_inpPath; }
113 double runoffErrFrac,
double routingErrFrac,
114 double avgTimestepSec,
double twoDErrFrac);
123 double runoffErrFrac,
double routingErrFrac,
137 qint64
steps, QVector<qint64> tierCells);
158 QVector<int> cellFlat);
164 QDateTime simTime,
double elapsedSec);
186 QDateTime simTime,
double elapsedSec);
194 QVector<float> rainCum,
195 QDateTime simTime,
double elapsedSec);
204 QDateTime simTime,
double elapsedSec);
211 QDateTime simTime,
double elapsedSec);
218 QVector<float> maxVel);
226 static void warningCallback(
void* engine,
int code,
const char *msg,
void *ud);
229 QString m_instanceName;
233 QString m_engineVersion;
235 std::atomic<bool> m_cancel{
false};
236 std::atomic<bool> m_paused{
false};
242 std::atomic<int> m_pending2DTicks{0};
Runs a single SWMM simulation on a worker thread and emits live progress, warnings,...
Definition simulationrunner.h:31
void progressChanged(int jobId, double fraction, QDateTime currentSimDate, double runoffErrFrac, double routingErrFrac, double avgTimestepSec, double twoDErrFrac)
Per-tick progress signal emitted from the step loop.
int jobId() const
Definition simulationrunner.h:60
void setPaused(bool paused)
Definition simulationrunner.cpp:1185
void twoDEnvelopesAvailable(int jobId, QVector< float > maxDepth, QVector< float > maxVel)
static QString parseTwoDOption(const QString &inpPath, const QString &key)
Scan a .inp for a [2D_OPTIONS] key and return its value as a QString verbatim (empty when absent).
Definition simulationrunner.cpp:195
void twoDInitialized(int jobId, QString h5Path, QVector< double > vx, QVector< double > vy, QVector< double > vz, QVector< int > cellFlat)
void warningReceived(int jobId, int code, QString message)
void cancel()
Request early termination. Step-loop exits at the next iteration; swmm_engine_end + swmm_engine_repor...
Definition simulationrunner.cpp:1178
void twoDFluxAvailable(int jobId, QVector< float > flux, QDateTime simTime, double elapsedSec)
void finished(int jobId, bool success, int errorCode, QString errorMessage, double runoffErrFrac, double routingErrFrac, double twoDErrFrac)
void twoDSolverStats(int jobId, QString backend, int momentum, int ltsTiers, qint64 steps, QVector< qint64 > tierCells)
2D solver telemetry (swmm_2d_get_run_stats), emitted once after start and with every progress tick of...
static QString parseTwoDOutputFile(const QString &inpPath)
Scan a .inp for [2D_OPTIONS] OUTPUT_FILE and return the resolved absolute path of the 2D HDF5 output ...
Definition simulationrunner.cpp:223
void twoDEdgeGeometryAvailable(int jobId, QVector< float > length, QVector< float > nx, QVector< float > ny)
void twoDRainfallAvailable(int jobId, QVector< float > rainfall, QVector< float > rainCum, QDateTime simTime, double elapsedSec)
void twoDHeadsAvailable(int jobId, QVector< float > heads, QDateTime simTime, double elapsedSec)
void start()
Definition simulationrunner.cpp:324
void simulationDatesKnown(int jobId, QDateTime start, QDateTime end)
Emitted once the engine is initialised and its OPTIONS section has been parsed. Carries the engine-si...
void twoDVertexDepthsAvailable(int jobId, QVector< double > vdepths, QDateTime simTime, double elapsedSec)
QString inpPath() const
Definition simulationrunner.h:62
bool isPaused() const
Definition simulationrunner.h:58
void twoDDepthsAvailable(int jobId, QVector< float > depths, QDateTime simTime, double elapsedSec)
QString outPath() const
Definition simulationrunner.h:61
int code
Definition heatconfigdialog.cpp:40
std::vector< double > nx
Definition mesh2dresultsexport.cpp:448
std::vector< double > ny
Definition mesh2dresultsexport.cpp:448
std::vector< std::vector< float > > steps
one per selected time step
Definition mesh2dresultsexport.cpp:295
const char * key
Definition meshcellparams.cpp:24
double length
Definition meshpatch.cpp:64
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString message
Definition queryparser.cpp:150