OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
QualityRouting.hpp
Go to the documentation of this file.
1
19#ifndef OPENSWMM_QUALITY_ROUTING_HPP
20#define OPENSWMM_QUALITY_ROUTING_HPP
21
22#include <vector>
23
24namespace openswmm {
25
26struct SimulationContext;
27
28namespace quality {
29
30// ============================================================================
31// Constants
32// ============================================================================
33
34constexpr double ZERO_VOLUME = 0.0353147;
35constexpr double ZERO_DEPTH = 0.003281;
36
37// ============================================================================
38// Quality solver
39// ============================================================================
40
42public:
43 void init(int n_nodes, int n_links, int n_pollutants);
44
57 void execute(SimulationContext& ctx, double dt);
58
66 void addWetWeatherLoads(SimulationContext& ctx, double dt);
67
71 void updateLinkQuality(SimulationContext& ctx, double dt);
72
73private:
74 int n_pollutants_ = 0;
75
76 // Quality mass inflow arrays are stored on NodeData (nodes.qual_mass_in[],
77 // nodes.qual_vol_in[]) so that external quality sources (user forcing, DWF
78 // quality, etc.) can contribute at the same assembly point.
79
81 void addRdiiLoads(SimulationContext& ctx, double dt);
82
84 void accumulateLinkLoads(SimulationContext& ctx, double dt);
85
87 void mixAtNodes(SimulationContext& ctx, double dt);
88
90 void applyTreatment(SimulationContext& ctx, double dt);
91
93 void applyDecay(SimulationContext& ctx, double dt);
94
95};
96
97} // namespace quality
98} // namespace openswmm
99
100#endif // OPENSWMM_QUALITY_ROUTING_HPP
Definition QualityRouting.hpp:41
void addWetWeatherLoads(SimulationContext &ctx, double dt)
Add subcatchment washoff quality loads to node inflows.
Definition QualityRouting.cpp:63
void updateLinkQuality(SimulationContext &ctx, double dt)
Definition QualityRouting.cpp:288
void init(int n_nodes, int n_links, int n_pollutants)
Definition QualityRouting.cpp:36
void execute(SimulationContext &ctx, double dt)
Execute one quality routing timestep.
Definition QualityRouting.cpp:42
constexpr double ZERO_VOLUME
1 liter in ft3
Definition QualityRouting.hpp:34
constexpr double ZERO_DEPTH
1 mm in ft
Definition QualityRouting.hpp:35
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:274