7#ifndef SIMULATIONSTATUSMODEL_H
8#define SIMULATIONSTATUSMODEL_H
10#include <QAbstractItemModel>
122 int addJob(
const QString &instanceName,
const QString &inpPath,
123 const QString &engineVersion = QString());
132 const QString &instanceName,
133 const QString &inpPath,
134 const QString &engineVersion = QString());
142 const QString &instanceName,
143 const QString &inpPath,
144 const QString &engineVersion);
153 const QDateTime ¤tSimDate,
154 double runoffErrFrac = 0.0,
155 double routingErrFrac = 0.0,
156 double avgTimestepSec = 0.0,
157 double twoDErrFrac = qQNaN());
166 int ltsTiers, qint64
steps,
167 const QVector<qint64> &tierCells);
171 const QDateTime &startSimDate,
172 const QDateTime &endSimDate);
183 void finishJob(
int jobId,
bool success,
int errCode,
const QString &errMsg,
184 double runoffErrFrac,
double routingErrFrac,
185 double twoDErrFrac = qQNaN());
205 QModelIndex
index(
int row,
int column,
206 const QModelIndex &
parent = QModelIndex())
const override;
207 QModelIndex
parent(
const QModelIndex &child)
const override;
208 int rowCount (
const QModelIndex &
parent = QModelIndex())
const override;
210 QVariant
data(
const QModelIndex &
index,
int role = Qt::DisplayRole)
const override;
211 QVariant
headerData(
int section, Qt::Orientation orientation,
212 int role = Qt::DisplayRole)
const override;
216 static constexpr quintptr kRootId = ~quintptr(0);
218 int jobIndexById(
int jobId)
const;
220 QList<SimulationJobRecord> m_jobs;
225 QMap<SWMMVisProjectWindow*, QMap<QString, int>> m_modelToJobId;
MDI sub-window owning a MapCanvas, SWMMModelLayer, and map tools.
Definition swmmvisprojectwindow.h:58
Two-level QAbstractItemModel for the Simulation Status dock.
Definition simulationstatusmodel.h:98
static constexpr int ColVersion
Definition simulationstatusmodel.h:113
static constexpr int ColEndDate
Definition simulationstatusmodel.h:107
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition simulationstatusmodel.cpp:336
int jobIdForRow(int row) const
Definition simulationstatusmodel.cpp:261
static constexpr int ColProgress
Definition simulationstatusmodel.h:104
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition simulationstatusmodel.cpp:341
void setSimulationDates(int jobId, const QDateTime &startSimDate, const QDateTime &endSimDate)
Definition simulationstatusmodel.cpp:155
static constexpr int ColStatus
Definition simulationstatusmodel.h:103
static constexpr int ColTwoDErr
Definition simulationstatusmodel.h:110
int addOrReuseJobForModel(SWMMVisProjectWindow *model, const QString &instanceName, const QString &inpPath, const QString &engineVersion=QString())
Add or reuse a job row bound to a model instance.
Definition simulationstatusmodel.cpp:49
void updateProgress(int jobId, double fraction, const QDateTime ¤tSimDate, double runoffErrFrac=0.0, double routingErrFrac=0.0, double avgTimestepSec=0.0, double twoDErrFrac=qQNaN())
Update progress for a running job.
Definition simulationstatusmodel.cpp:127
static constexpr int Col2DBackend
"cpu · LOCAL_INERTIAL", "—" for 1D runs
Definition simulationstatusmodel.h:114
static constexpr int ColRunoffErr
Definition simulationstatusmodel.h:108
static constexpr int ColRoutingErr
Definition simulationstatusmodel.h:109
QList< int > clearJobsForModel(SWMMVisProjectWindow *model)
Remove every row bound to the given model.
Definition simulationstatusmodel.cpp:267
int addJob(const QString &instanceName, const QString &inpPath, const QString &engineVersion=QString())
Definition simulationstatusmodel.cpp:29
static constexpr int ColLtsTiers
"4 tiers · t3 84 %"
Definition simulationstatusmodel.h:115
const SimulationJobRecord * jobRecord(int jobId) const
Definition simulationstatusmodel.cpp:254
void finishJob(int jobId, bool success, int errCode, const QString &errMsg, double runoffErrFrac, double routingErrFrac, double twoDErrFrac=qQNaN())
Definition simulationstatusmodel.cpp:206
static constexpr int ColAvgTimestep
Definition simulationstatusmodel.h:112
static constexpr int ColCurrentDate
Definition simulationstatusmodel.h:106
void updateTwoDSolverStats(int jobId, const QString &backend, int momentum, int ltsTiers, qint64 steps, const QVector< qint64 > &tierCells)
Definition simulationstatusmodel.cpp:516
static constexpr int NumColumns
Definition simulationstatusmodel.h:116
static constexpr int ColDuration
Definition simulationstatusmodel.h:111
int ensureJobForModel(SWMMVisProjectWindow *model, const QString &instanceName, const QString &inpPath, const QString &engineVersion)
Return the job row bound to (model, engine version), creating an Idle row if none exists yet....
Definition simulationstatusmodel.cpp:101
static constexpr int ColName
Definition simulationstatusmodel.h:102
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition simulationstatusmodel.cpp:491
static constexpr int ColStartDate
Definition simulationstatusmodel.h:105
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition simulationstatusmodel.cpp:327
void addWarning(int jobId, int code, const QString &message)
Definition simulationstatusmodel.cpp:175
int code
Definition heatconfigdialog.cpp:40
SWMM_FilePathRole role
Definition ioportabilitynormalizer.cpp:22
std::vector< std::vector< float > > steps
one per selected time step
Definition mesh2dresultsexport.cpp:295
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString message
Definition queryparser.cpp:150
SimulationJobStatus
Status of a single simulation job.
Definition simulationstatusmodel.h:21
@ Idle
Row exists for an open model; no run yet.
Data record for one simulation run.
Definition simulationstatusmodel.h:35
QString instanceName
Displayed name (e.g. "Example1.inp")
Definition simulationstatusmodel.h:37
QString errorMessage
Definition simulationstatusmodel.h:51
QString engineVersion
Engine version string (e.g. "6.0.0" or "5.3.0")
Definition simulationstatusmodel.h:39
QDateTime startSimDate
Definition simulationstatusmodel.h:61
SimulationJobStatus status
Definition simulationstatusmodel.h:41
QVector< qint64 > twoDTierCells
rebuild-sampled cells per LTS tier
Definition simulationstatusmodel.h:72
int twoDMomentum
0 LOCAL_INERTIAL, 1 FULL_SWE, 2 DIFFUSIVE_WAVE
Definition simulationstatusmodel.h:69
QDateTime currentSimDate
Definition simulationstatusmodel.h:63
QDateTime startedAt
Definition simulationstatusmodel.h:54
QString twoDBackend
empty = no 2D run / not started
Definition simulationstatusmodel.h:68
QString inpPath
Full .inp path.
Definition simulationstatusmodel.h:38
int droppedWarnings
oldest entries trimmed past the per-job cap
Definition simulationstatusmodel.h:75
double routingErrPct
Definition simulationstatusmodel.h:47
double progress
[0.0, 1.0]
Definition simulationstatusmodel.h:42
qint64 twoDSteps
cumulative marcher substeps
Definition simulationstatusmodel.h:71
double twoDErrPct
NaN = run has no 2D model.
Definition simulationstatusmodel.h:48
QDateTime endSimDate
Definition simulationstatusmodel.h:62
int errorCode
Definition simulationstatusmodel.h:50
double runoffErrPct
Definition simulationstatusmodel.h:46
double avgTimestepSec
running average engine timestep (seconds)
Definition simulationstatusmodel.h:65
QDateTime finishedAt
Definition simulationstatusmodel.h:55
int twoDLtsTiers
configured LTS_TIERS
Definition simulationstatusmodel.h:70
QStringList warnings
"[code] message" entries
Definition simulationstatusmodel.h:74