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

Dense SoA for flow-divider properties (one row per DIVIDER node). More...

#include <NodeSubtypes.hpp>

Collaboration diagram for openswmm::DividerData:

Public Member Functions

int count () const noexcept
 Count DividerData rows from the base-object join-key column.
 
void clear () noexcept
 Erase all DividerData rows while retaining vector capacities.
 
void reserve (int n)
 Request capacity for each DividerData column without changing row count.
 
int add_default (int i)
 Insert a default DividerData row at the sorted base-object key position.
 
void erase_at (int r)
 Erase dense DividerData row data and shift later dense rows down.
 

Public Attributes

std::vector< int > node_idx
 Base NodeData index this row belongs to (the join key).
 
std::vector< DividerType > method
 Diversion method (CUTOFF/OVERFLOW/TABULAR/WEIR).
 
std::vector< double > cutoff
 Cutoff flow for CUTOFF dividers.
 
std::vector< double > cd
 Weir discharge coefficient for WEIR dividers.
 
std::vector< double > max_depth
 Weir max depth for WEIR dividers.
 
std::vector< int > curve
 Diversion curve index for TABULAR dividers (-1 = none).
 
std::vector< int > link
 Diversion link index (-1 = not set).
 
std::vector< std::string > link_name
 Diversion link name (deferred resolution).
 
std::vector< std::string > curve_name
 Diversion curve name (deferred resolution, TABULAR only).
 

Detailed Description

Dense SoA for flow-divider properties (one row per DIVIDER node).

Mirrors the divider_* fields of NodeData.

Member Function Documentation

◆ add_default()

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

Insert a default DividerData row at the sorted base-object key position.

Assumes ascending node_idx and aligned columns. Seeds CUTOFF method, unset curve/link references and zero parameters. Does not update the enclosing reverse map, reject duplicate keys, enforce lifecycle or initialize solver caches. Allocation failure can leave partially inserted parallel columns.

Parameters
[in]iNonnegative base-object index; caller ensures it exists, is of this subtype and is absent from this table.
Returns
Inserted dense row index; later dense rows shift up.

◆ clear()

void openswmm::DividerData::clear ( )
inlinenoexcept

Erase all DividerData rows while retaining vector capacities.

Invalidates element references/iterators and removes owned nested state. Does not clear base objects or repair the enclosing reverse map.

◆ count()

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

Count DividerData rows from the base-object join-key column.

Returns
node_idx.size() converted to int; other column lengths are not checked.
Here is the caller graph for this function:

◆ erase_at()

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

Erase dense DividerData row data and shift later dense rows down.

Erases every defined side-table column. Does not erase a base object, renumber stored base keys or rebuild the reverse map; enclosing maintenance handles those steps.

Parameters
[in]rExisting dense subtype-row index, NOT the base-object index; caller validates bounds/alignment.

◆ reserve()

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

Request capacity for each DividerData column without changing row count.

May invalidate column references/iterators. Allocation failure can leave different reserved capacities, while existing row values remain.

Parameters
[in]nNonnegative anticipated row count; caller validates before conversion to size_t.

Member Data Documentation

◆ cd

std::vector<double> openswmm::DividerData::cd

Weir discharge coefficient for WEIR dividers.

◆ curve

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

Diversion curve index for TABULAR dividers (-1 = none).

◆ curve_name

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

Diversion curve name (deferred resolution, TABULAR only).

◆ cutoff

std::vector<double> openswmm::DividerData::cutoff

Cutoff flow for CUTOFF dividers.

◆ link

std::vector<int> openswmm::DividerData::link

Diversion link index (-1 = not set).

◆ link_name

std::vector<std::string> openswmm::DividerData::link_name

Diversion link name (deferred resolution).

◆ max_depth

std::vector<double> openswmm::DividerData::max_depth

Weir max depth for WEIR dividers.

◆ method

std::vector<DividerType> openswmm::DividerData::method

Diversion method (CUTOFF/OVERFLOW/TABULAR/WEIR).

◆ node_idx

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

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


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