OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
Divider.hpp
Go to the documentation of this file.
1
22#ifndef OPENSWMM_DIVIDER_HPP
23#define OPENSWMM_DIVIDER_HPP
24
25#include "../data/NodeData.hpp"
26#include <vector>
27
28namespace openswmm {
29
30struct SimulationContext;
31
32namespace divider {
33
34enum class DividerMethod : int {
35 CUTOFF = 0,
36 OVERFLOW_DIV = 1,
37 TABULAR = 2,
38 WEIR = 3
39};
40
41struct DividerSoA {
42 int count = 0;
43 std::vector<int> node_idx;
44 std::vector<int> div_link_idx;
45 std::vector<int> method;
46 std::vector<double> cutoff_flow;
47 std::vector<double> weir_cd;
48 std::vector<double> weir_max_depth;
49 std::vector<int> table_idx;
50
51 void resize(int n);
52};
53
66
67} // namespace divider
68} // namespace openswmm
69
70#endif // OPENSWMM_DIVIDER_HPP
DividerMethod
Definition Divider.hpp:34
@ OVERFLOW_DIV
Renamed to avoid macOS math.h OVERFLOW macro.
void computeDividerFlows(SimulationContext &ctx, const DividerSoA &soa)
Compute diversion flows for all divider nodes.
Definition Divider.cpp:31
Definition Controls.cpp:24
Central, reentrant simulation context.
Definition SimulationContext.hpp:141
Definition Divider.hpp:41
std::vector< int > method
DividerMethod.
Definition Divider.hpp:45
std::vector< int > table_idx
Curve index (for TABULAR)
Definition Divider.hpp:49
std::vector< double > weir_cd
Discharge coeff (for WEIR)
Definition Divider.hpp:47
std::vector< double > cutoff_flow
Cutoff flow (for CUTOFF)
Definition Divider.hpp:46
std::vector< double > weir_max_depth
Weir max depth.
Definition Divider.hpp:48
std::vector< int > div_link_idx
Diversion link index.
Definition Divider.hpp:44
void resize(int n)
Definition Divider.cpp:19
int count
Definition Divider.hpp:42
std::vector< int > node_idx
Divider node index.
Definition Divider.hpp:43