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

Dense SoA for storage-unit properties (one row per STORAGE node). More...

#include <NodeSubtypes.hpp>

Collaboration diagram for openswmm::StorageData:

Public Member Functions

int count () const noexcept
 Number of storage rows.
 
void clear () noexcept
 Drop all rows (capacity retained).
 
void reserve (int n)
 Reserve capacity for n rows.
 
int add_default (int i)
 Insert a default storage row for base node i, keeping node_idx ascending; returns the inserted row index. Defaults match NodeData::resize. Ascending parse inserts at the end (O(1)); edits may insert in the middle.
 
void erase_at (int r)
 Erase storage row r from every column.
 

Public Attributes

std::vector< int > node_idx
 Base NodeData index this row belongs to (the join key).
 
std::vector< int > curve
 Storage curve index into TableData (-1 = not tabulated).
 
std::vector< std::string > curve_name
 Curve name for deferred resolution.
 
std::vector< StorageShapeshape
 Surface-area relation. Selects how a/b/c below are interpreted.
 
std::vector< double > a
 Area coefficient A (legacy a1). FUNCTIONAL: A·d^B; geometric shapes: the linear term of C + A·d + B·d². Derived from p1..p3 for the latter.
 
std::vector< double > b
 Area coefficient B (legacy a2). FUNCTIONAL: the exponent; geometric shapes: the quadratic term.
 
std::vector< double > c
 Area coefficient C (legacy a0). Baseline area at zero depth.
 
std::vector< double > p1
 Raw shape parameter 1 — major axis / base length L (geometric shapes only). Kept alongside the derived a/b/c so .inp/.gpkg round-trip losslessly; legacy discards these, which is why a legacy model cannot rewrite its own shape params.
 
std::vector< double > p2
 Raw shape parameter 2 — minor axis / base width W.
 
std::vector< double > p3
 Raw shape parameter 3 — side slope Z (run/rise), or height for PARABOLOID.
 
std::vector< double > seep_rate
 Seepage rate (project units/day).
 
std::vector< double > evap_frac
 Fraction of potential evaporation realized (0-1).
 
std::vector< double > evap_loss
 Evaporation loss this timestep (ft3).
 
std::vector< double > exfil_loss
 Exfiltration loss this timestep (ft3).
 
std::vector< double > exfil_suction
 Green-Ampt suction head for exfiltration.
 
std::vector< double > exfil_ksat
 Green-Ampt saturated conductivity for exfiltration.
 
std::vector< double > exfil_imd
 Green-Ampt initial moisture deficit for exfiltration (0-1).
 

Detailed Description

Dense SoA for storage-unit properties (one row per STORAGE node).

Row r corresponds to base node node_idx[r]. Mirrors the storage_* / exfil_* fields of NodeData.

Member Function Documentation

◆ add_default()

int openswmm::StorageData::add_default ( int i)
inline

Insert a default storage row for base node i, keeping node_idx ascending; returns the inserted row index. Defaults match NodeData::resize. Ascending parse inserts at the end (O(1)); edits may insert in the middle.

◆ clear()

void openswmm::StorageData::clear ( )
inlinenoexcept

Drop all rows (capacity retained).

◆ count()

int openswmm::StorageData::count ( ) const
inlinenoexcept

Number of storage rows.

◆ erase_at()

void openswmm::StorageData::erase_at ( int r)
inline

Erase storage row r from every column.

◆ reserve()

void openswmm::StorageData::reserve ( int n)
inline

Reserve capacity for n rows.

Member Data Documentation

◆ a

std::vector<double> openswmm::StorageData::a

Area coefficient A (legacy a1). FUNCTIONAL: A·d^B; geometric shapes: the linear term of C + A·d + B·d². Derived from p1..p3 for the latter.

◆ b

std::vector<double> openswmm::StorageData::b

Area coefficient B (legacy a2). FUNCTIONAL: the exponent; geometric shapes: the quadratic term.

◆ c

std::vector<double> openswmm::StorageData::c

Area coefficient C (legacy a0). Baseline area at zero depth.

◆ curve

std::vector<int> openswmm::StorageData::curve

Storage curve index into TableData (-1 = not tabulated).

◆ curve_name

std::vector<std::string> openswmm::StorageData::curve_name

Curve name for deferred resolution.

◆ evap_frac

std::vector<double> openswmm::StorageData::evap_frac

Fraction of potential evaporation realized (0-1).

◆ evap_loss

std::vector<double> openswmm::StorageData::evap_loss

Evaporation loss this timestep (ft3).

◆ exfil_imd

std::vector<double> openswmm::StorageData::exfil_imd

Green-Ampt initial moisture deficit for exfiltration (0-1).

◆ exfil_ksat

std::vector<double> openswmm::StorageData::exfil_ksat

Green-Ampt saturated conductivity for exfiltration.

◆ exfil_loss

std::vector<double> openswmm::StorageData::exfil_loss

Exfiltration loss this timestep (ft3).

◆ exfil_suction

std::vector<double> openswmm::StorageData::exfil_suction

Green-Ampt suction head for exfiltration.

◆ node_idx

std::vector<int> openswmm::StorageData::node_idx

Base NodeData index this row belongs to (the join key).

◆ p1

std::vector<double> openswmm::StorageData::p1

Raw shape parameter 1 — major axis / base length L (geometric shapes only). Kept alongside the derived a/b/c so .inp/.gpkg round-trip losslessly; legacy discards these, which is why a legacy model cannot rewrite its own shape params.

◆ p2

std::vector<double> openswmm::StorageData::p2

Raw shape parameter 2 — minor axis / base width W.

◆ p3

std::vector<double> openswmm::StorageData::p3

Raw shape parameter 3 — side slope Z (run/rise), or height for PARABOLOID.

◆ seep_rate

std::vector<double> openswmm::StorageData::seep_rate

Seepage rate (project units/day).

◆ shape

std::vector<StorageShape> openswmm::StorageData::shape

Surface-area relation. Selects how a/b/c below are interpreted.


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