OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
NodeCoupling2DData.hpp File Reference

Per-node 1D↔2D coupling structure rows ([2D_NODE_COUPLING]). More...

#include <array>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <vector>
Include dependency graph for NodeCoupling2DData.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::NodeCoupling2DRows
 Sparse [2D_NODE_COUPLING] rows (one per authored node). More...
 

Namespaces

namespace  openswmm
 

Typedefs

using openswmm::NodeCoupling2DParams = std::array<double, kNodeCoupling2DKeys>
 

Enumerations

enum class  openswmm::NodeCoupling2DType : int8_t {
  openswmm::NONE = 0 ,
  openswmm::MANHOLE = 1 ,
  openswmm::GRATE = 2 ,
  openswmm::CURB = 3 ,
  openswmm::OPEN = 4 ,
  openswmm::OUTFALL = 5
}
 Coupling structure type of a node. NONE = not coupleable. More...
 
enum class  openswmm::NodeCoupling2DKey : int {
  openswmm::D = 0 ,
  openswmm::PERIMETER ,
  openswmm::AREA ,
  openswmm::CHAMBER_AREA ,
  openswmm::LID_OPEN_FRACTION ,
  openswmm::CREST ,
  openswmm::COEFFS ,
  openswmm::CW ,
  openswmm::CSW ,
  openswmm::COI ,
  openswmm::COO ,
  openswmm::LAW ,
  openswmm::SPREAD ,
  openswmm::TAILWATER_RELAX ,
  openswmm::COUNT
}
 Optional KEY=VALUE parameters of a [2D_NODE_COUPLING] row, in write order. More...
 
enum class  openswmm::NodeCoupling2DCrest : int {
  openswmm::NODE_RIM = 0 ,
  openswmm::MESH_BED = 1 ,
  openswmm::MAX = 2 ,
  openswmm::MIN = 3
}
 CREST policy values (stored in the CREST parameter slot). More...
 
enum class  openswmm::NodeCoupling2DCoeffs : int {
  openswmm::DEFAULT = 0 ,
  openswmm::RUBINATO2017 = 1 ,
  openswmm::RUBINATO2017_LOWER = 2 ,
  openswmm::RUBINATO2017_UPPER = 3
}
 COEFFS preset values (stored in the COEFFS parameter slot). More...
 
enum class  openswmm::NodeCoupling2DLaw : int {
  openswmm::ORIFICE = 0 ,
  openswmm::WEIR_ORIFICE = 1
}
 LAW values (stored in the LAW parameter slot). More...
 

Functions

NodeCoupling2DParams openswmm::unsetNodeCoupling2DParams () noexcept
 Create a parameter array with every slot marked unauthored.
 

Variables

constexpr int openswmm::kNodeCoupling2DKeys = static_cast<int>(NodeCoupling2DKey::COUNT)
 

Detailed Description

Per-node 1D↔2D coupling structure rows ([2D_NODE_COUPLING]).

One row per node that authored a [2D_NODE_COUPLING] line: the node's coupling structure type and the parameters it authored. Nodes without a row take the default type for their class (core/NodeCoupling2D.hpp). The type decides whether the node is coupleable at all: map rows ([2D_VERTEX_NODE_MAP] / [2D_TRIANGLE_NODE_MAP]) naming a NONE node are ignored.

Rows key on the node INDEX, so a rename needs nothing and a node delete drops and renumbers through erase_node(). Parameter values are stored as authored (project units); NaN means not authored.

See also
plans/1D2D_FINE_SCALE_COUPLING_PLAN_2026-10-19.md §5
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0