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
24
namespace
openswmm
{
25
26
struct
SimulationContext;
27
28
namespace
quality {
29
30
// ============================================================================
31
// Constants
32
// ============================================================================
33
34
constexpr
double
ZERO_VOLUME
= 0.0353147;
35
constexpr
double
ZERO_DEPTH
= 0.003281;
36
37
// ============================================================================
38
// Quality solver
39
// ============================================================================
40
41
class
QualitySolver
{
42
public
:
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
73
private
:
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
openswmm::quality::QualitySolver
Definition
QualityRouting.hpp:41
openswmm::quality::QualitySolver::addWetWeatherLoads
void addWetWeatherLoads(SimulationContext &ctx, double dt)
Add subcatchment washoff quality loads to node inflows.
Definition
QualityRouting.cpp:63
openswmm::quality::QualitySolver::updateLinkQuality
void updateLinkQuality(SimulationContext &ctx, double dt)
Definition
QualityRouting.cpp:288
openswmm::quality::QualitySolver::init
void init(int n_nodes, int n_links, int n_pollutants)
Definition
QualityRouting.cpp:36
openswmm::quality::QualitySolver::execute
void execute(SimulationContext &ctx, double dt)
Execute one quality routing timestep.
Definition
QualityRouting.cpp:42
openswmm::quality::ZERO_VOLUME
constexpr double ZERO_VOLUME
1 liter in ft3
Definition
QualityRouting.hpp:34
openswmm::quality::ZERO_DEPTH
constexpr double ZERO_DEPTH
1 mm in ft
Definition
QualityRouting.hpp:35
openswmm
Definition
NodeCoupling.cpp:15
openswmm::SimulationContext
Central, reentrant simulation context.
Definition
SimulationContext.hpp:274
src
engine
quality
QualityRouting.hpp
Generated by
1.9.8