OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ArdEngine.hpp File Reference

Solver-agnostic Eulerian ARD transport engine (phase E1). More...

#include <fstream>
#include <string>
#include <vector>
#include "../../../hydraulics/fv/FvKernels.hpp"
#include "../../../hydraulics/fv/NetworkMeshData.hpp"
Include dependency graph for ArdEngine.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmm::transport::ArdEngine
 

Namespaces

namespace  openswmm
 
namespace  openswmm::transport
 

Detailed Description

Solver-agnostic Eulerian ARD transport engine (phase E1).

Selected by [OPTIONS] QUALITY_SOLVER EULERIAN_ARD (plans/transport/EULERIAN_ARD_TRANSPORT_PLAN.md rev. 2). Runs the promoted FV species kernels (transport/fvkernels) on the NetworkMeshBuilder cell mesh under ANY hydraulic routing model: link/node hydraulics are projected onto the cells each routing step with continuity-consistent face fluxes (§3.2 of the plan), species advect with sign-of-flux upwinding + MUSCL/QUICKEST reconstruction + Zalesak FCT, junctions mix as CSTRs fed by the same face fluxes, and results publish back into the legacy links.conc / nodes.conc arrays so reporting is unchanged.

Scope as of E4/R6 (see the validation handoffs): conservative transport with structures (pumps/orifices/weirs/outlets) as zero-volume passthrough of the donor node store, persistent user quality-mass-flux forcing, longitudinal dispersion (per-conduit user coefficients and/or Fischer et al. 1979 via the transport.ard component, E3) sequentially split after advection each substep, and REACTIONS (E4/R6, Lie-split per routing step): exact-exponential kdecay plus MSX species integration per cell (pipe scope) and node store (tank scope) through the shared reaction module. MSX species are TRANSPORTED on the mesh under this engine — the state carries pollutant rows first (np-aligned) then the MSX rows; the R4b element-local limitation is LEGACY-only. WALL species fall back to LEGACY with a warning.

Treatment interop, sources/BCs and the mass-balance ledger rows LANDED with E5a (cbb9d321) and E5b (721ae60c) — this comment listed all three as pending until 2026-08-25, five rounds after the fact, and a program-state audit read it as authoritative.

Genuinely still pending: direct consumption of the FV solver's own cell state instead of the projection (E2b); storage mixing models beyond CMSTR (E2b, shared with LARD); tidal reverse-flow boundary concentration (E2b, no scaffolding at all).

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n Apache-2.0