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

SoA storage for per-edge boundary conditions. More...

#include <BoundaryData.hpp>

Collaboration diagram for openswmm::twoD::BoundaryData:

Public Member Functions

void resize (int n_edges)
 Resize all arrays to n_edges and initialize to WALL defaults.
 
int size () const noexcept
 

Public Attributes

std::vector< int8_t > edge_bc_type
 Boundary condition type per edge (cast from BoundaryType)
 
std::vector< double > edge_bed_slope
 
std::vector< double > edge_bc_head
 
std::vector< int > edge_bc_tseries
 
std::vector< std::string > edge_bc_tseries_name
 Timeseries name for deferred resolution (cleared after resolve).
 
std::vector< double > edge_bc_cum_flux
 
std::vector< double > edge_bc_flow
 
std::vector< int > edge_bc_flow_tseries
 
std::vector< std::string > edge_bc_flow_tseries_name
 Timeseries name for deferred resolution (cleared after resolve).
 
std::vector< int > edge_bc_rating_curve
 
std::vector< std::string > edge_bc_rating_curve_name
 Curve name for deferred resolution (cleared after resolve).
 

Detailed Description

SoA storage for per-edge boundary conditions.

All arrays are flat 2D: indexed as [tri * 3 + edge_local] where edge_local ∈ {0,1,2}. Only meaningful for boundary edges (tri_nbr == -1), but allocated for all edges to avoid indirection in the flux loop.

Member Function Documentation

◆ resize()

void openswmm::twoD::BoundaryData::resize ( int  n_edges)
inline

Resize all arrays to n_edges and initialize to WALL defaults.

Parameters
n_edgesTotal number of edge slots (n_triangles * 3).
Here is the caller graph for this function:

◆ size()

int openswmm::twoD::BoundaryData::size ( ) const
inlinenoexcept
Here is the caller graph for this function:

Member Data Documentation

◆ edge_bc_cum_flux

std::vector<double> openswmm::twoD::BoundaryData::edge_bc_cum_flux

Cumulative boundary flux (m³, positive = outflow from domain). Tracked for mass balance reporting.

◆ edge_bc_flow

std::vector<double> openswmm::twoD::BoundaryData::edge_bc_flow

Prescribed discharge per metre of edge (m³/s/m) for SPECIFIED_FLOW edges. For time-varying: updated each step from timeseries.

◆ edge_bc_flow_tseries

std::vector<int> openswmm::twoD::BoundaryData::edge_bc_flow_tseries

Timeseries index for time-varying SPECIFIED_FLOW. -1 = constant (use edge_bc_flow as-is), -2 = unresolved name, >= 0 = resolved table index into SimulationContext::tables.

◆ edge_bc_flow_tseries_name

std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_flow_tseries_name

Timeseries name for deferred resolution (cleared after resolve).

◆ edge_bc_head

std::vector<double> openswmm::twoD::BoundaryData::edge_bc_head

Prescribed total head for SPECIFIED_STAGE edges (m). For time-varying: updated each step from timeseries.

◆ edge_bc_rating_curve

std::vector<int> openswmm::twoD::BoundaryData::edge_bc_rating_curve

Curve registry index for RATING_CURVE edges. -1 = unset, -2 = unresolved name, >= 0 = resolved curve index.

◆ edge_bc_rating_curve_name

std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_rating_curve_name

Curve name for deferred resolution (cleared after resolve).

◆ edge_bc_tseries

std::vector<int> openswmm::twoD::BoundaryData::edge_bc_tseries

Timeseries index for time-varying SPECIFIED_STAGE. -1 = constant (use edge_bc_head as-is), -2 = unresolved name, >= 0 = resolved table index into SimulationContext::tables.

◆ edge_bc_tseries_name

std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_tseries_name

Timeseries name for deferred resolution (cleared after resolve).

◆ edge_bc_type

std::vector<int8_t> openswmm::twoD::BoundaryData::edge_bc_type

Boundary condition type per edge (cast from BoundaryType)

◆ edge_bed_slope

std::vector<double> openswmm::twoD::BoundaryData::edge_bed_slope

Bed slope for NORMAL_FLOW edges (dimensionless, >= 0). If 0.0 at parse time, auto-computed from bed geometry during init.


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