OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::kinwave::KWSolver Class Reference

Kinematic wave solver state. More...

#include <KinematicWave.hpp>

Collaboration diagram for openswmm::kinwave::KWSolver:

Public Member Functions

void init (int n_conduits, const XSectGroups &groups)
 Initialise for n conduit-type links. Call once after model is built.
 
int execute (SimulationContext &ctx, double dt)
 Route all conduits for one KW timestep.
 

Detailed Description

Kinematic wave solver state.

Holds SoA working arrays for all conduits. Allocated once at init. The execute() method routes all conduits for one timestep.

Member Function Documentation

◆ execute()

int openswmm::kinwave::KWSolver::execute ( SimulationContext ctx,
double  dt 
)

Route all conduits for one KW timestep.

  1. Batch-compute inlet section factors from inflows using XSectGroups
  2. For each conduit, solve the Newton continuity equation
  3. Batch-compute outflows from outlet section factors
  4. Update state arrays
Parameters
ctxSimulation context (links/nodes modified in place).
dtTimestep (seconds).
Returns
Average number of Newton iterations across all conduits.
Here is the caller graph for this function:

◆ init()

void openswmm::kinwave::KWSolver::init ( int  n_conduits,
const XSectGroups groups 
)

Initialise for n conduit-type links. Call once after model is built.

Here is the caller graph for this function:

The documentation for this class was generated from the following files: