![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
SoA storage for per-edge boundary conditions. More...
#include <BoundaryData.hpp>
Classes | |
| struct | RuntimeOriginal |
Public Member Functions | |
| void | ensureReceipt (int slot, int species) const |
| Ensure a boundary receipt has the selected transport tuple width. | |
| void | saveRuntime (int slot) |
| Capture a boundary's authored prescription before its first runtime override. | |
| void | clearRuntime (int slot) |
| Restore a saved authored boundary prescription for one runtime slot. | |
| void | resize (int n_edges) |
| Resize all arrays to n_edges and initialize to WALL defaults. | |
| int | size () const noexcept |
| Report the number of padded boundary edge slots. | |
Public Attributes | |
| std::vector< int8_t > | edge_bc_type |
| Boundary condition type per edge (cast from BoundaryType) | |
| std::vector< double > | edge_wall_drag |
| Optional tangential wall drag: tau/rho = -Cw |ut| ut. Zero = free slip. | |
| std::vector< uint8_t > | edge_is_exterior |
| Derived from authored connectivity before runtime topology exists. | |
| 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). | |
| std::map< int, RuntimeOriginal > | runtime_original |
| std::map< int, std::string > | runtime_owner |
| std::map< int, RuntimeReceipt > | receipts |
SoA storage for per-edge boundary conditions.
All arrays are flat 2D: indexed as [cell * kMaxCellVerts + 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 |
Restore a saved authored boundary prescription for one runtime slot.
| [in] | slot | Valid internal edge slot with sized boundary arrays. |
|
inline |
Ensure a boundary receipt has the selected transport tuple width.
| [in] | slot | Internal padded edge slot, MeshData::slot(cell,edge); may create a new receipt map entry. |
| [in] | species | Nonnegative number of transported species. |
|
inline |
Resize all arrays to n_edges and initialize to WALL defaults.
| n_edges | Total number of edge slots (n_cells * kMaxCellVerts). |
|
inline |
Capture a boundary's authored prescription before its first runtime override.
| [in] | slot | Valid internal padded edge slot across every boundary array. |
|
inlinenoexcept |
Report the number of padded boundary edge slots.
| 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 |
Signed bed slope for NORMAL_FLOW edges (dimensionless). Positive values drain outward; negative values prescribe inward flow. A zero slope zeroes the Manning outflow — the edge behaves as a Wall (validate_project warns; no auto-compute from bed geometry).
| std::vector<uint8_t> openswmm::twoD::BoundaryData::edge_is_exterior |
Derived from authored connectivity before runtime topology exists.
| std::vector<double> openswmm::twoD::BoundaryData::edge_wall_drag |
Optional tangential wall drag: tau/rho = -Cw |ut| ut. Zero = free slip.
|
mutable |
| std::map<int, RuntimeOriginal> openswmm::twoD::BoundaryData::runtime_original |
| std::map<int, std::string> openswmm::twoD::BoundaryData::runtime_owner |