OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
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
 

Functions

double openswmm::node::getVolume (const NodeData &nodes, int idx, double depth, TableData *tables=nullptr, int unit_sys=0, const NodeSubtypes *subs=nullptr)
 Evaluate a node depth-volume relation in native units.
 
double openswmm::node::getSurfArea (const NodeData &nodes, int idx, double depth, TableData *tables=nullptr, int unit_sys=0, const NodeSubtypes *subs=nullptr)
 Evaluate the raw derivative of storage volume with depth.
 
double openswmm::node::getPondedArea (const NodeData &nodes, int idx, double depth, TableData *tables=nullptr, int unit_sys=0, const NodeSubtypes *subs=nullptr)
 Select an above-rim ponded area or the raw storage surface area.
 
double openswmm::node::getMaxOutflow (const NodeData &nodes, int idx, double q, double dt)
 Limit a proposed nonnegative withdrawal by legacy node storage availability.
 
double openswmm::node::getOverflow (double new_volume, double full_volume, double dt)
 Convert excess node water volume into a timestep overflow rate.
 
double openswmm::node::storeVolume (const NodeData &nodes, int idx)
 Evaluate the mixed transport store from current node state.
 
double openswmm::node::storeVolume (const NodeData &nodes, int idx, double depth, double volume)
 Evaluate a transport store using an explicit depth and booked volume.
 
double openswmm::node::getDepth (const NodeData &nodes, int idx, double volume, TableData *tables=nullptr, int unit_sys=0, const NodeSubtypes *subs=nullptr)
 Convert booked storage volume to depth using native geometry.
 
double openswmm::node::getHead (double invert_elev, double depth)
 Compute hydraulic head by adding node invert and depth.
 
void openswmm::node::computeHeads (const double *invert, const double *depth, double *head, int n)
 Add native invert elevation and depth elementwise.
 
void openswmm::node::computeVolumes (const NodeData &nodes, const double *depth, double *volume, const NodeSubtypes *subs=nullptr)
 Evaluate every node volume with US-unit, table-free scalar geometry.
 
void openswmm::node::computeOverflows (const double *new_volume, const double *full_volume, double *overflow, double dt, int n)
 Compute per-node overflow from excess native volumes.
 

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
Apache-2.0