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

Node hydraulics — numerically identical to legacy node.c. More...

#include "Node.hpp"
#include "../core/UnitConversion.hpp"
#include "../data/NodeSubtypes.hpp"
#include "../data/StorageGeometry.hpp"
#include "../math/FindRoot.hpp"
#include <cmath>
#include <algorithm>
Include dependency graph for Node.cpp:

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::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::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, double depth, double volume)
 Evaluate a transport store using an explicit depth and booked volume.
 
double openswmm::node::storeVolume (const NodeData &nodes, int idx)
 Evaluate the mixed transport store from current node state.
 
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 — numerically identical to legacy node.c.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0