OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::dynwave::DPSLinkArrays Struct Reference

#include <DynamicWave.hpp>

Collaboration diagram for openswmm::dynwave::DPSLinkArrays:

Public Member Functions

void resize (std::size_t n)
 

Public Attributes

std::vector< double > As
 Accumulated slot area (ft²)
 
std::vector< double > hs
 Current surcharge head (ft)
 
std::vector< double > hs_prev_iter
 hs at start of current timestep (ft)
 
std::vector< double > P
 Current Preissmann Number (smoothed)
 
std::vector< double > P_hat
 Provisional Preissmann Number (before smoothing)
 
std::vector< double > P_hat_0
 Initial P for unpressurized conduit.
 
std::vector< double > T_s_target
 g · A_C / c_pT² (cached at init)
 
std::vector< double > t_s
 Time when element last became surcharged (sec)
 
std::vector< uint8_t > surcharged
 Currently surcharged flag.
 

Detailed Description

Per-conduit DPS state — Structure of Arrays (persistent across timesteps). Each vector is indexed by conduit index [0..n_conduits_).

The head-first link-node formulation treats hs as a diagnostic of the node-head solution (hs = max(depth_mid − y_full, 0)) and accumulates As from dAs = T_s · dhs so the slot storage is path-dependent and invariant under P-only evolution. hs_prev_iter snapshots hs at the start of each timestep so the Picard-iter increment dhs = hs_iter − hs_prev_iter is anchored to the previous converged head rather than the previous iterate. T_s_target = g · A_C / c_pT² is cached so the per-iter T_s = T_s_target · P² reduces to a single multiply.

Member Function Documentation

◆ resize()

void openswmm::dynwave::DPSLinkArrays::resize ( std::size_t  n)
inline
Here is the caller graph for this function:

Member Data Documentation

◆ As

std::vector<double> openswmm::dynwave::DPSLinkArrays::As

Accumulated slot area (ft²)

◆ hs

std::vector<double> openswmm::dynwave::DPSLinkArrays::hs

Current surcharge head (ft)

◆ hs_prev_iter

std::vector<double> openswmm::dynwave::DPSLinkArrays::hs_prev_iter

hs at start of current timestep (ft)

◆ P

std::vector<double> openswmm::dynwave::DPSLinkArrays::P

Current Preissmann Number (smoothed)

◆ P_hat

std::vector<double> openswmm::dynwave::DPSLinkArrays::P_hat

Provisional Preissmann Number (before smoothing)

◆ P_hat_0

std::vector<double> openswmm::dynwave::DPSLinkArrays::P_hat_0

Initial P for unpressurized conduit.

◆ surcharged

std::vector<uint8_t> openswmm::dynwave::DPSLinkArrays::surcharged

Currently surcharged flag.

◆ t_s

std::vector<double> openswmm::dynwave::DPSLinkArrays::t_s

Time when element last became surcharged (sec)

◆ T_s_target

std::vector<double> openswmm::dynwave::DPSLinkArrays::T_s_target

g · A_C / c_pT² (cached at init)


The documentation for this struct was generated from the following file: