39#ifndef OPENSWMM_ENGINE_2D_BOUNDARY_DATA_HPP
40#define OPENSWMM_ENGINE_2D_BOUNDARY_DATA_HPP
155 if (receipt.applied_mass.size() !=
static_cast<std::size_t
>(species)) {
156 receipt.requested_mass.assign(species, 0.0);
157 receipt.applied_mass.assign(species, 0.0);
192 const auto& b = it->second;
226 auto n =
static_cast<std::size_t
>(n_edges);
Runtime coupling state and canonical transport exchange quantities.
Definition ExchangeLaw.hpp:60
BoundaryType
Boundary condition types for 2D mesh edges.
Definition BoundaryData.hpp:58
@ RATING_CURVE
Stage → flow lookup (curve registry index)
Definition BoundaryData.hpp:63
@ SPECIFIED_FLOW
Prescribed discharge per metre of edge (constant or TS)
Definition BoundaryData.hpp:62
@ NORMAL_FLOW
Manning outflow using bed slope.
Definition BoundaryData.hpp:60
@ WALL
Zero-flux wall (default)
Definition BoundaryData.hpp:59
@ SPECIFIED_STAGE
Prescribed water surface elevation (constant or TS)
Definition BoundaryData.hpp:61
Definition BoundaryData.hpp:133
int stage_ts
Definition BoundaryData.hpp:136
double head
Definition BoundaryData.hpp:135
int flow_ts
Definition BoundaryData.hpp:136
std::string flow_name
Definition BoundaryData.hpp:137
std::string rating_name
Definition BoundaryData.hpp:137
std::string stage_name
Definition BoundaryData.hpp:137
double flow
Definition BoundaryData.hpp:135
int rating
Definition BoundaryData.hpp:136
double slope
Definition BoundaryData.hpp:135
int8_t type
Definition BoundaryData.hpp:134
SoA storage for per-edge boundary conditions.
Definition BoundaryData.hpp:73
std::vector< uint8_t > edge_is_exterior
Derived from authored connectivity before runtime topology exists.
Definition BoundaryData.hpp:81
std::map< int, RuntimeReceipt > receipts
Definition BoundaryData.hpp:141
std::vector< std::string > edge_bc_flow_tseries_name
Timeseries name for deferred resolution (cleared after resolve).
Definition BoundaryData.hpp:120
void resize(int n_edges)
Resize all arrays to n_edges and initialize to WALL defaults.
Definition BoundaryData.hpp:222
std::vector< int > edge_bc_tseries
Definition BoundaryData.hpp:96
std::vector< int8_t > edge_bc_type
Boundary condition type per edge (cast from BoundaryType)
Definition BoundaryData.hpp:76
std::vector< std::string > edge_bc_tseries_name
Timeseries name for deferred resolution (cleared after resolve).
Definition BoundaryData.hpp:99
std::vector< double > edge_bed_slope
Definition BoundaryData.hpp:87
std::vector< double > edge_bc_flow
Definition BoundaryData.hpp:112
std::vector< double > edge_bc_head
Definition BoundaryData.hpp:91
int size() const noexcept
Report the number of padded boundary edge slots.
Definition BoundaryData.hpp:247
std::vector< std::string > edge_bc_rating_curve_name
Curve name for deferred resolution (cleared after resolve).
Definition BoundaryData.hpp:131
std::vector< double > edge_wall_drag
Optional tangential wall drag: tau/rho = -Cw |ut| ut. Zero = free slip.
Definition BoundaryData.hpp:79
std::vector< double > edge_bc_cum_flux
Definition BoundaryData.hpp:103
std::map< int, std::string > runtime_owner
Definition BoundaryData.hpp:140
void saveRuntime(int slot)
Capture a boundary's authored prescription before its first runtime override.
Definition BoundaryData.hpp:168
std::vector< int > edge_bc_rating_curve
Definition BoundaryData.hpp:128
std::map< int, RuntimeOriginal > runtime_original
Definition BoundaryData.hpp:139
void clearRuntime(int slot)
Restore a saved authored boundary prescription for one runtime slot.
Definition BoundaryData.hpp:188
std::vector< int > edge_bc_flow_tseries
Definition BoundaryData.hpp:117
void ensureReceipt(int slot, int species) const
Ensure a boundary receipt has the selected transport tuple width.
Definition BoundaryData.hpp:152