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

#include <LinkSubtypes.hpp>

Collaboration diagram for openswmm::WeirData:

Public Member Functions

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

Public Attributes

std::vector< int > link_idx
 
std::vector< double > weir_type
 TRANSVERSE/SIDEFLOW/V-NOTCH/TRAPEZOIDAL/ROADWAY = 0..4 (legacy param1)
 
std::vector< double > cd
 Discharge coefficient.
 
std::vector< double > end_contractions
 End contractions (legacy param2)
 
std::vector< double > crest_height
 
std::vector< double > cd2
 End-section discharge coeff (legacy cDisch2)
 
std::vector< uint8_t > can_surcharge
 Surcharge YES/NO (legacy Weir.canSurcharge, default YES)
 
std::vector< double > road_width
 ROADWAY weir: road width across the flow (legacy Weir.roadWidth; authored length units until the resolver, then ft)
 
std::vector< int8_t > road_surface
 ROADWAY weir: 0 none, 1 PAVED, 2 GRAVEL (legacy Weir.roadSurface)
 
std::vector< int > cd_curve
 Discharge-coefficient curve index in ctx.tables, -1 none (legacy Weir.cdCurve)
 

Member Function Documentation

◆ add_default()

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

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

Assumes ascending link_idx and aligned columns. Seeds TRANSVERSE type, surcharge enabled, curve=-1 and zero geometric/coefficient values. 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::WeirData::clear ( )
inlinenoexcept

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

Count WeirData 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::WeirData::erase_at ( int r)
inline

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

Request capacity for each WeirData 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

◆ can_surcharge

std::vector<uint8_t> openswmm::WeirData::can_surcharge

Surcharge YES/NO (legacy Weir.canSurcharge, default YES)

◆ cd

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

Discharge coefficient.

◆ cd2

std::vector<double> openswmm::WeirData::cd2

End-section discharge coeff (legacy cDisch2)

◆ cd_curve

std::vector<int> openswmm::WeirData::cd_curve

Discharge-coefficient curve index in ctx.tables, -1 none (legacy Weir.cdCurve)

◆ crest_height

std::vector<double> openswmm::WeirData::crest_height

◆ end_contractions

std::vector<double> openswmm::WeirData::end_contractions

End contractions (legacy param2)

◆ link_idx

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

◆ road_surface

std::vector<int8_t> openswmm::WeirData::road_surface

ROADWAY weir: 0 none, 1 PAVED, 2 GRAVEL (legacy Weir.roadSurface)

◆ road_width

std::vector<double> openswmm::WeirData::road_width

ROADWAY weir: road width across the flow (legacy Weir.roadWidth; authored length units until the resolver, then ft)

◆ weir_type

std::vector<double> openswmm::WeirData::weir_type

TRANSVERSE/SIDEFLOW/V-NOTCH/TRAPEZOIDAL/ROADWAY = 0..4 (legacy param1)


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