![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
SoA storage for per-edge boundary conditions. More...
#include <BoundaryData.hpp>
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). | |
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.
|
inline |
Resize all arrays to n_edges and initialize to WALL defaults.
| n_edges | Total number of edge slots (n_triangles * 3). |
|
inlinenoexcept |
| std::vector<double> openswmm::twoD::BoundaryData::edge_bc_cum_flux |
Cumulative boundary flux (m³, positive = outflow from domain). Tracked for mass balance reporting.
| 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.
| 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.
| std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_flow_tseries_name |
Timeseries name for deferred resolution (cleared after resolve).
| 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.
| 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.
| std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_rating_curve_name |
Curve name for deferred resolution (cleared after resolve).
| 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.
| std::vector<std::string> openswmm::twoD::BoundaryData::edge_bc_tseries_name |
Timeseries name for deferred resolution (cleared after resolve).
| std::vector<int8_t> openswmm::twoD::BoundaryData::edge_bc_type |
Boundary condition type per edge (cast from BoundaryType)
| 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.