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

Node hydraulics — volume/depth/head conversions, surface area, overflow. More...

Include dependency graph for Node.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  openswmm
 
namespace  openswmm::node
 
namespace  openswmm::constants
 

Functions

double openswmm::node::getVolume (const NodeData &nodes, int idx, double depth, TableData *tables=nullptr)
 Compute volume at a given depth for a single node.
 
double openswmm::node::getSurfArea (const NodeData &nodes, int idx, double depth, TableData *tables=nullptr)
 Compute surface area at a given depth for a single node.
 
double openswmm::node::getPondedArea (const NodeData &nodes, int idx, double depth)
 Get the ponded area (for overflow above rim).
 
double openswmm::node::getMaxOutflow (const NodeData &nodes, int idx, double q, double dt)
 Compute max outflow limited by available volume.
 
double openswmm::node::getOverflow (double new_volume, double full_volume, double dt)
 Compute overflow rate at a node.
 
double openswmm::node::getHead (double invert_elev, double depth)
 Compute head from depth: head = invert + depth.
 
void openswmm::node::computeHeads (const double *invert, const double *depth, double *head, int n)
 Compute head = invert + depth for all nodes.
 
void openswmm::node::computeVolumes (const NodeData &nodes, const double *depth, double *volume)
 Compute volumes for all nodes from their current depths.
 
void openswmm::node::computeOverflows (const double *new_volume, const double *full_volume, double *overflow, double dt, int n)
 Compute overflow for all nodes.
 

Variables

constexpr double openswmm::constants::GRAVITY = 32.2
 ft/s^2
 
constexpr double openswmm::constants::PHI = 1.486
 Manning's units factor (US)
 
constexpr double openswmm::constants::FUDGE = 0.0001
 Minimum depth/area threshold (ft)
 
constexpr double openswmm::constants::MIN_SURFAREA = 12.566
 4*pi sq ft ≈ 4-ft diameter manhole
 

Detailed Description

Node hydraulics — volume/depth/head conversions, surface area, overflow.

All functions operate on SoA arrays from NodeData. They are designed for batch operation over all nodes in a single call.

Note
Legacy reference: src/legacy/engine/node.c
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License