28#ifndef OPENSWMM_KINEMATIC_WAVE_HPP
29#define OPENSWMM_KINEMATIC_WAVE_HPP
36struct SimulationContext;
44constexpr double WX = 0.6;
45constexpr double WT = 0.6;
89 double q_full,
double a_full,
double s_full,
90 double beta,
double length,
double dt,
95 std::vector<double>
q1_;
96 std::vector<double>
a1_;
97 std::vector<double>
q2_;
98 std::vector<double>
a2_;
Cross-section geometry — unified batch + per-element API.
Shape-grouped cross-section manager for batch computation.
Definition XSectBatch.hpp:208
Kinematic wave solver state.
Definition KinematicWave.hpp:58
int execute(SimulationContext &ctx, double dt)
Route all conduits for one KW timestep.
Definition KinematicWave.cpp:219
void setLinkOrder(const std::vector< int > &sorted_links)
Set topological link order (must be called after init, before first execute).
Definition KinematicWave.hpp:65
int solveConduit(int idx, const XSectParams &xs, double q_full, double a_full, double s_full, double beta, double length, double dt, double loss_rate)
Per-conduit Newton solve. Returns iteration count.
Definition KinematicWave.cpp:57
std::vector< double > q_in_
Inflow to each conduit (cfs)
Definition KinematicWave.hpp:101
std::vector< double > a_in_
Inlet area from inflow (ft2)
Definition KinematicWave.hpp:102
std::vector< double > a_out_
Outlet area from Newton solve (ft2)
Definition KinematicWave.hpp:104
std::vector< double > a2_
Previous outlet area (ft2)
Definition KinematicWave.hpp:98
std::vector< double > a1_
Previous inlet area (ft2)
Definition KinematicWave.hpp:96
std::vector< double > sf_in_
Section factor at inlet.
Definition KinematicWave.hpp:105
std::vector< double > q2_
Previous outlet flow (cfs)
Definition KinematicWave.hpp:97
std::vector< int > sorted_links_
Topological link order (upstream → downstream)
Definition KinematicWave.hpp:85
std::vector< double > q1_
Previous inlet flow (cfs)
Definition KinematicWave.hpp:95
std::vector< double > q_out_
Computed outflow (cfs)
Definition KinematicWave.hpp:103
void init(int n_conduits, const XSectGroups &groups)
Definition KinematicWave.cpp:37
constexpr double WX
Distance weighting factor.
Definition KinematicWave.hpp:44
constexpr double EPSIL
Newton convergence tolerance.
Definition KinematicWave.hpp:46
constexpr double WT
Time weighting factor.
Definition KinematicWave.hpp:45
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:274
Definition XSectBatch.hpp:92