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

Unique interior-edge structure for the local-inertial momentum DOFs. More...

#include <vector>
Include dependency graph for InertialEdges.hpp:
This graph shows which files directly or indirectly include this file:

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
 

Detailed Description

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).

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