![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
Kinematic wave routing solver — batch-oriented design. More...
Go to the source code of this file.
Classes | |
| class | openswmm::kinwave::KWSolver |
| Kinematic wave solver state. More... | |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::kinwave |
Variables | |
| constexpr double | openswmm::kinwave::WX = 0.6 |
| Distance weighting factor. | |
| constexpr double | openswmm::kinwave::WT = 0.6 |
| Time weighting factor. | |
| constexpr double | openswmm::kinwave::EPSIL = 0.001 |
| Newton convergence tolerance. | |
Kinematic wave routing solver — batch-oriented design.
Port of legacy kinwave.c, restructured for data-oriented execution:
1. **Batch geometry** — uses XSectGroups to pre-compute section
factors for all conduits before solving
2. **Per-conduit Newton** — the continuity equation solve is
inherently per-conduit (each converges independently), but
conduits are grouped by shape so the section-factor evaluations
within Newton can also be batched per group
3. **Batch state update** — inlet/outlet areas and flows updated
for all conduits in contiguous sweeps
Weighted finite-difference scheme:
WX = 0.6 (space weighting)
WT = 0.6 (time weighting)