![]() |
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) |
| bool | openswmm::transport::ardHasWallSpecies (const SimulationContext &ctx) |
| 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=-1) |
| The E4 reaction stage over one routing step. | |
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.