21#ifndef OPENSWMM_ENGINE_2D_NODE_COUPLING_HPP
22#define OPENSWMM_ENGINE_2D_NODE_COUPLING_HPP
24#include "../data/MeshData.hpp"
25#include "../data/SurfaceStateData.hpp"
26#include "../data/SolverOptions2D.hpp"
30struct SimulationContext;
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:99
void updateOutfallBoundaries(const std::vector< CouplingPoint > &cps, const MeshData &mesh, const SurfaceStateData &state, SimulationContext &ctx)
Update outfall boundary depths from 2D surface heads.
Definition NodeCoupling.cpp:264
void transferOutfallDischarges(const std::vector< CouplingPoint > &cps, const MeshData &mesh, SurfaceStateData &state, const SimulationContext &ctx, double)
Transfer outfall discharges into 2D coupling cells.
Definition NodeCoupling.cpp:318
std::vector< CouplingPoint > buildCouplingPoints(const MeshData &mesh, const SimulationContext &ctx)
Build the list of coupling points from mesh coupling maps.
Definition NodeCoupling.cpp:40
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:274
Descriptor for a single coupling point between 2D and 1D.
Definition NodeCoupling.hpp:38
double area
Effective exchange area (m²)
Definition NodeCoupling.hpp:43
bool is_outfall
True if the SWMM node is an outfall.
Definition NodeCoupling.hpp:44
bool has_flap_gate
True if outfall has a flap gate.
Definition NodeCoupling.hpp:45
int vertex_idx
Vertex index (-1 if triangle-centroid coupling)
Definition NodeCoupling.hpp:40
int cell_idx
Triangle index in the 2D mesh.
Definition NodeCoupling.hpp:39
int node_idx
SWMM node index.
Definition NodeCoupling.hpp:41
double cd
Discharge coefficient.
Definition NodeCoupling.hpp:42
SoA storage for 2D triangular mesh geometry and topology.
Definition MeshData.hpp:34
Configuration for the 2D surface routing CVODE solver.
Definition SolverOptions2D.hpp:76
SoA storage for 2D surface routing state variables.
Definition SurfaceStateData.hpp:32