OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
Infiltration.hpp
Go to the documentation of this file.
1
18#ifndef OPENSWMM_INFILTRATION_HPP
19#define OPENSWMM_INFILTRATION_HPP
20
21namespace openswmm {
22
23struct SimulationOptions;
24
25// ============================================================================
26// Infiltration model type
27// ============================================================================
28
29enum class InfilModel : int {
30 HORTON = 0,
31 MOD_HORTON = 1,
32 GREEN_AMPT = 2,
33 CURVE_NUM = 3
34};
35
36// ============================================================================
37// Horton infiltration state (per subcatchment)
38// ============================================================================
39
41 double f0 = 0.0;
42 double fmin = 0.0;
43 double decay = 0.0;
44 double regen = 0.0;
45 double Fmax = 0.0;
46 double tp = 0.0;
47 double Fe = 0.0;
48 double Fmh = 0.0;
49};
50
51// ============================================================================
52// Green-Ampt state (per subcatchment)
53// ============================================================================
54
56 double S = 0.0;
57 double Ks = 0.0;
58 double IMDmax = 0.0;
59 double IMD = 0.0;
60 double F = 0.0;
61 double Fu = 0.0;
62 double Fumax = 0.0;
63 double Lu = 0.0;
64 double T = 0.0;
65 bool saturated = false;
66};
67
68// ============================================================================
69// SCS Curve Number state (per subcatchment)
70// ============================================================================
71
73 double Smax = 0.0;
74 double S = 0.0;
75 double Se = 0.0;
76 double P = 0.0;
77 double F = 0.0;
78 double f = 0.0;
79 double regen = 0.0;
80 double T = 0.0;
81 double Tmax = 0.0;
82};
83
84// ============================================================================
85// Infiltration functions
86// ============================================================================
87
88namespace infil {
89
99double horton_getInfil(HortonState& state, double precip, double depth, double dt);
100
115double modHorton_getInfil(HortonState& state, double precip, double depth, double dt);
116
126double grnampt_getInfil(GreenAmptState& state, double precip, double depth, double dt);
127
137double curvenum_getInfil(CurveNumState& state, double precip, double depth, double dt);
138
150void horton_init(HortonState& state, double f0, double fmin,
151 double decay, double regen, double Fmax,
152 const SimulationOptions& opts);
153
163void grnampt_init(GreenAmptState& state, double S, double Ks, double IMD,
164 const SimulationOptions& opts);
165
173void curvenum_init(CurveNumState& state, double CN, double regen);
174
175} // namespace infil
176} // namespace openswmm
177
178#endif // OPENSWMM_INFILTRATION_HPP
void curvenum_init(CurveNumState &state, double CN, double regen_days)
Initialise Curve Number parameters.
Definition Infiltration.cpp:322
void grnampt_init(GreenAmptState &state, double S, double Ks, double IMD, const SimulationOptions &opts)
Initialise Green-Ampt parameters.
Definition Infiltration.cpp:207
double grnampt_getInfil(GreenAmptState &state, double precip, double depth, double dt)
Compute Green-Ampt infiltration rate.
Definition Infiltration.cpp:238
double modHorton_getInfil(HortonState &state, double precip, double depth, double dt)
Compute Modified Horton infiltration rate for one timestep.
Definition Infiltration.cpp:147
void horton_init(HortonState &state, double f0, double fmin, double decay, double regen, double Fmax, const SimulationOptions &opts)
Initialise Horton parameters from user input.
Definition Infiltration.cpp:26
double curvenum_getInfil(CurveNumState &state, double precip, double depth, double dt)
Compute SCS Curve Number infiltration rate.
Definition Infiltration.cpp:340
double horton_getInfil(HortonState &state, double precip, double depth, double dt)
Compute Horton infiltration rate for one timestep.
Definition Infiltration.cpp:43
Definition Controls.cpp:24
InfilModel
Definition Infiltration.hpp:29
Definition Infiltration.hpp:72
double regen
Regeneration rate (1/sec)
Definition Infiltration.hpp:79
double S
Current retention (ft)
Definition Infiltration.hpp:74
double F
Cumulative infiltration (ft)
Definition Infiltration.hpp:77
double T
Time since last rainfall (sec)
Definition Infiltration.hpp:80
double Tmax
Inter-event time (sec)
Definition Infiltration.hpp:81
double f
Previous infiltration rate (ft/sec)
Definition Infiltration.hpp:78
double Se
Effective retention at event start (ft)
Definition Infiltration.hpp:75
double Smax
Max retention S = (1000/CN - 10)/12 (ft)
Definition Infiltration.hpp:73
double P
Cumulative precipitation (ft)
Definition Infiltration.hpp:76
Definition Infiltration.hpp:55
bool saturated
True when surface is saturated.
Definition Infiltration.hpp:65
double Ks
Saturated hydraulic conductivity (ft/sec)
Definition Infiltration.hpp:57
double IMD
Current moisture deficit (0-1)
Definition Infiltration.hpp:59
double Lu
Upper zone depth (ft)
Definition Infiltration.hpp:63
double S
Capillary suction head (ft)
Definition Infiltration.hpp:56
double IMDmax
Maximum initial moisture deficit (0-1)
Definition Infiltration.hpp:58
double F
Cumulative infiltration (ft)
Definition Infiltration.hpp:60
double Fu
Upper zone saturation volume (ft)
Definition Infiltration.hpp:61
double Fumax
Max upper zone saturation (ft)
Definition Infiltration.hpp:62
double T
Inter-event timer (sec, counts down)
Definition Infiltration.hpp:64
Definition Infiltration.hpp:40
double f0
Initial infiltration rate (ft/sec)
Definition Infiltration.hpp:41
double Fmax
Max cumulative infiltration (ft)
Definition Infiltration.hpp:45
double Fe
Cumulative excess infiltration (ft)
Definition Infiltration.hpp:47
double fmin
Minimum (ultimate) rate (ft/sec)
Definition Infiltration.hpp:42
double decay
Decay constant k (1/sec)
Definition Infiltration.hpp:43
double regen
Regeneration constant kr (1/sec)
Definition Infiltration.hpp:44
double tp
Cumulative infiltration time (sec)
Definition Infiltration.hpp:46
double Fmh
Cumulative infiltration for Modified Horton (ft)
Definition Infiltration.hpp:48
All SWMM simulation options parsed from [OPTIONS] section.
Definition SimulationOptions.hpp:100