![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
Unique interior-edge structure for the local-inertial momentum DOFs. More...
#include <vector>Go to the source code of this file.
Classes | |
| struct | openswmm::twoD::InertialEdges |
| Canonical unique interior-edge layout + per-cell incidence for the local-inertial scheme. More... | |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::twoD |
Unique interior-edge structure for the local-inertial momentum DOFs.
Phase 2 of docs/IMEX_LOCAL_INERTIAL_IMPLEMENTATION_PLAN.md. The diffusive-wave path stores edges redundantly per cell (MeshData edge arrays are flat [tri*3+edge]); the local-inertial scheme instead carries ONE prognostic discharge q per shared interior edge (the conservation invariant: a single antisymmetric flux per edge). This builds that canonical unique-edge enumeration plus a per-cell CSR incidence so the continuity divergence dV_i/dt = −Σ_e sign_i(e)·q_e·ξ_e is a race-free per-cell gather (bit-identical under OpenMP, like the rest of the 2D pipeline).
Orientation: each interior edge is stored once with cL = min(t,nbr), cR = max(t,nbr). q_e > 0 means flow cL→cR. So q_e is OUTFLOW from cL (sign +1) and INFLOW to cR (sign −1).
Boundary edges (nbr < 0) carry NO q DOF here — they are walls in the closed-basin Phase-2 validation. Prescribed-boundary momentum is a later addition (plan §3: prescribed boundaries stay explicit).