21#ifndef OPENSWMM_ENGINE_2D_NODE_COUPLING_HPP
22#define OPENSWMM_ENGINE_2D_NODE_COUPLING_HPP
24#include <unordered_map>
126 double* ydot)
noexcept;
172 std::unordered_map<int, double>& applied_q);
Structure-of-Arrays (SoA) storage for 2D triangular mesh geometry.
Configuration options for the 2D surface routing solver.
Structure-of-Arrays (SoA) storage for 2D surface routing state.
Definition NodeCoupling.cpp:15
void computeCouplingExchange(const std::vector< CouplingPoint > &cps, const MeshData &mesh, SurfaceStateData &state, SimulationContext &ctx, const SolverOptions2D &opts, double dt)
Compute exchange flows at all coupling points and inject into forcing API.
Definition NodeCoupling.cpp:290
int transferOutfallDischarges(const std::vector< CouplingPoint > &cps, const MeshData &mesh, SurfaceStateData &state, const SimulationContext &ctx, const SolverOptions2D &opts, double dt, std::unordered_map< int, double > &applied_q)
Transfer outfall discharges into 2D coupling cells.
Definition NodeCoupling.cpp:613
void scatterCouplingToYdot(const MeshData &mesh, const SurfaceStateData &state, const CouplingPoint &cp, double Q, double *ydot) noexcept
Scatter a signed volumetric exchange Q (m³/s) directly onto the cell derivatives ydot[] of the 2D vol...
Definition NodeCoupling.cpp:183
std::vector< CouplingPoint > buildCouplingPoints(const MeshData &mesh, const SimulationContext &ctx)
Build the list of coupling points from mesh coupling maps.
Definition NodeCoupling.cpp:227
void updateOutfallBoundaries(const std::vector< CouplingPoint > &cps, const MeshData &mesh, const SurfaceStateData &state, SimulationContext &ctx, const SolverOptions2D &opts)
Update outfall boundary depths from 2D surface heads.
Definition NodeCoupling.cpp:514
double computeNodeCouplingQ(const CouplingPoint &cp, const MeshData &mesh, const SurfaceStateData &state, const NodeData &nodes, const SolverOptions2D &opts) noexcept
Live node-coupling orifice flux for ONE non-outfall coupling point.
Definition NodeCoupling.cpp:126
Definition NodeCoupling.cpp:15
Structure-of-Arrays storage for all nodes.
Definition NodeData.hpp:114
Central, reentrant simulation context.
Definition SimulationContext.hpp:292
Descriptor for a single coupling point between 2D and 1D.
Definition NodeCoupling.hpp:41
double area
Effective exchange area (m²)
Definition NodeCoupling.hpp:46
bool is_outfall
True if the SWMM node is an outfall.
Definition NodeCoupling.hpp:47
bool has_flap_gate
True if outfall has a flap gate.
Definition NodeCoupling.hpp:48
int vertex_idx
Vertex index (-1 if triangle-centroid coupling)
Definition NodeCoupling.hpp:43
int cell_idx
Triangle index in the 2D mesh.
Definition NodeCoupling.hpp:42
int node_idx
SWMM node index.
Definition NodeCoupling.hpp:44
double cd
Discharge coefficient.
Definition NodeCoupling.hpp:45
SoA storage for 2D triangular mesh geometry and topology.
Definition MeshData.hpp:34
Configuration for the 2D surface routing CVODE solver.
Definition SolverOptions2D.hpp:132
Definition SurfaceStateData.hpp:41