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

Kinematic wave routing solver — batch-oriented design. More...

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

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.
 

Detailed Description

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)
Note
Legacy reference: src/legacy/engine/kinwave.c
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License