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

#include <LinkSubtypes.hpp>

Collaboration diagram for openswmm::OrificeData:

Public Member Functions

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

Public Attributes

std::vector< int > link_idx
 
std::vector< double > orifice_type
 0 = BOTTOM, 1 = SIDE (legacy param1)
 
std::vector< double > cd
 Discharge coefficient.
 
std::vector< double > orate
 Open/close time in HOURS, as parsed.
 

Member Function Documentation

◆ add_default()

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

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

Assumes ascending link_idx and aligned columns. Seeds BOTTOM type and zero discharge/open-close 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::OrificeData::clear ( )
inlinenoexcept

Erase all OrificeData 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::OrificeData::count ( ) const
inlinenoexcept

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

Returns
link_idx.size() converted to int; other column lengths are not checked.

◆ erase_at()

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

Erase dense OrificeData 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::OrificeData::reserve ( int n)
inline

Request capacity for each OrificeData 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::OrificeData::cd

Discharge coefficient.

◆ link_idx

std::vector<int> openswmm::OrificeData::link_idx

◆ orate

std::vector<double> openswmm::OrificeData::orate

Open/close time in HOURS, as parsed.

◆ orifice_type

std::vector<double> openswmm::OrificeData::orifice_type

0 = BOTTOM, 1 = SIDE (legacy param1)


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