![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Phase E4/R6 — reaction binding for the Eulerian ARD engine. More...
Go to the source code of this file.
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::transport |
Functions | |
| bool | openswmm::transport::ardReactionsActive (const SimulationContext &ctx) |
| Test configured/compiled native reaction flags for ARD binding. | |
| bool | openswmm::transport::ardHasWallSpecies (const SimulationContext &ctx) |
| Test whether any configured reaction species is marked WALL. | |
| void | openswmm::transport::reactArdStage (SimulationContext &ctx, double dt, double *cell_phi, const double *cell_a, const double *cell_dx, int n_cells, double *node_mass, const double *node_vol, int n_nodes, int n_pollut, int ns_total, double min_store_vol, int temp_row, const int *cell_conduit, const int *conduit_link) |
| Decay pollutant rows and integrate native reaction rows in ARD cell/node stores. | |
Phase E4/R6 — reaction binding for the Eulerian ARD engine.
One reaction stage per ROUTING step on the ARD mesh state, Lie-split after the advection–dispersion subcycle (first-order splitting, the documented decision of roadmap lesson 13: the integrator substeps adaptively inside the stage, routing steps are short relative to typical kinetics, and the projection error dominates — revisit if the LEGACY-vs-ARD convergence gate says otherwise):
MSX species are TRANSPORTED on the mesh under this engine (R6): the ARD state carries n_pollutants + n_msx species rows, so the R4b element-local limitation does not apply here. WALL species have no transport semantics yet — a model with WALL species under EULERIAN_ARD falls back to LEGACY with a warning.
Failure containment matches R4: a failed integration leaves the element's block unchanged and warns once per run with the element kind/index and the integrator's remedy text.