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 MOD_GREEN_AMPT = 3,
34 CURVE_NUM = 4
35};
36
37// ============================================================================
38// Horton infiltration state (per subcatchment)
39// ============================================================================
40
42 double f0 = 0.0;
43 double fmin = 0.0;
44 double decay = 0.0;
45 double regen = 0.0;
46 double Fmax = 0.0;
47 double tp = 0.0;
48 double Fe = 0.0;
49 double Fmh = 0.0;
50};
51
52// ============================================================================
53// Green-Ampt state (per subcatchment)
54// ============================================================================
55
57 double S = 0.0;
58 double Ks = 0.0;
59 double IMDmax = 0.0;
60 double IMD = 0.0;
61 double F = 0.0;
62 double Fu = 0.0;
63 double Fumax = 0.0;
64 double Lu = 0.0;
65 double T = 0.0;
66 bool saturated = false;
67};
68
69// ============================================================================
70// SCS Curve Number state (per subcatchment)
71// ============================================================================
72
74 double Smax = 0.0;
75 double S = 0.0;
76 double Se = 0.0;
77 double P = 0.0;
78 double F = 0.0;
79 double f = 0.0;
80 double regen = 0.0;
81 double T = 0.0;
82 double Tmax = 0.0;
83};
84
85// ============================================================================
86// Infiltration functions
87// ============================================================================
88
89namespace infil {
90
100double horton_getInfil(HortonState& state, double precip, double depth, double dt);
101
116double modHorton_getInfil(HortonState& state, double precip, double depth, double dt);
117
127double grnampt_getInfil(GreenAmptState& state, double precip, double depth, double dt,
129
139double curvenum_getInfil(CurveNumState& state, double precip, double depth, double dt);
140
152void horton_init(HortonState& state, double f0, double fmin,
153 double decay, double regen, double Fmax,
154 const SimulationOptions& opts);
155
165void grnampt_init(GreenAmptState& state, double S, double Ks, double IMD,
166 const SimulationOptions& opts);
167
175void curvenum_init(CurveNumState& state, double CN, double regen);
176
177} // namespace infil
178} // namespace openswmm
179
180#endif // OPENSWMM_INFILTRATION_HPP
void curvenum_init(CurveNumState &state, double CN, double regen_days)
Initialise Curve Number parameters.
Definition Infiltration.cpp:323
void grnampt_init(GreenAmptState &state, double S, double Ks, double IMD, const SimulationOptions &opts)
Initialise Green-Ampt parameters.
Definition Infiltration.cpp:207
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 grnampt_getInfil(GreenAmptState &state, double precip, double depth, double dt, InfilModel model_type)
Compute Green-Ampt infiltration rate.
Definition Infiltration.cpp:238
double curvenum_getInfil(CurveNumState &state, double precip, double depth, double dt)
Compute SCS Curve Number infiltration rate.
Definition Infiltration.cpp:341
double horton_getInfil(HortonState &state, double precip, double depth, double dt)
Compute Horton infiltration rate for one timestep.
Definition Infiltration.cpp:43
Definition NodeCoupling.cpp:15
InfilModel
Definition Infiltration.hpp:29
Definition Infiltration.hpp:73
double regen
Regeneration rate (1/sec)
Definition Infiltration.hpp:80
double S
Current retention (ft)
Definition Infiltration.hpp:75
double F
Cumulative infiltration (ft)
Definition Infiltration.hpp:78
double T
Time since last rainfall (sec)
Definition Infiltration.hpp:81
double Tmax
Inter-event time (sec)
Definition Infiltration.hpp:82
double f
Previous infiltration rate (ft/sec)
Definition Infiltration.hpp:79
double Se
Effective retention at event start (ft)
Definition Infiltration.hpp:76
double Smax
Max retention S = (1000/CN - 10)/12 (ft)
Definition Infiltration.hpp:74
double P
Cumulative precipitation (ft)
Definition Infiltration.hpp:77
Definition Infiltration.hpp:56
bool saturated
True when surface is saturated.
Definition Infiltration.hpp:66
double Ks
Saturated hydraulic conductivity (ft/sec)
Definition Infiltration.hpp:58
double IMD
Current moisture deficit (0-1)
Definition Infiltration.hpp:60
double Lu
Upper zone depth (ft)
Definition Infiltration.hpp:64
double S
Capillary suction head (ft)
Definition Infiltration.hpp:57
double IMDmax
Maximum initial moisture deficit (0-1)
Definition Infiltration.hpp:59
double F
Cumulative infiltration (ft)
Definition Infiltration.hpp:61
double Fu
Upper zone saturation volume (ft)
Definition Infiltration.hpp:62
double Fumax
Max upper zone saturation (ft)
Definition Infiltration.hpp:63
double T
Inter-event timer (sec, counts down)
Definition Infiltration.hpp:65
Definition Infiltration.hpp:41
double f0
Initial infiltration rate (ft/sec)
Definition Infiltration.hpp:42
double Fmax
Max cumulative infiltration (ft)
Definition Infiltration.hpp:46
double Fe
Cumulative excess infiltration (ft)
Definition Infiltration.hpp:48
double fmin
Minimum (ultimate) rate (ft/sec)
Definition Infiltration.hpp:43
double decay
Decay constant k (1/sec)
Definition Infiltration.hpp:44
double regen
Regeneration constant kr (1/sec)
Definition Infiltration.hpp:45
double tp
Cumulative infiltration time (sec)
Definition Infiltration.hpp:47
double Fmh
Cumulative infiltration for Modified Horton (ft)
Definition Infiltration.hpp:49
All SWMM simulation options parsed from [OPTIONS] section.
Definition SimulationOptions.hpp:122