OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
NodeCoupling.cpp File Reference

Implementation of 2D↔1D node coupling via orifice exchange. More...

#include "NodeCoupling.hpp"
#include "../../core/SimulationContext.hpp"
#include <cmath>
#include <algorithm>
Include dependency graph for NodeCoupling.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Functions

double openswmm::twoD::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.
 
void openswmm::twoD::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 volume ODE (for the live-RHS path).
 
std::vector< CouplingPointopenswmm::twoD::buildCouplingPoints (const MeshData &mesh, const SimulationContext &ctx)
 Build the list of coupling points from mesh coupling maps.
 
void openswmm::twoD::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.
 
void openswmm::twoD::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.
 
int openswmm::twoD::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.
 

Detailed Description

Implementation of 2D↔1D node coupling via orifice exchange.

See also
NodeCoupling.hpp