OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
infil.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// infil.h
3//
4// Project: EPA SWMM5
5// Version: 5.2
6// Date: 11/01/21 (Build 5.2.0)
7// Author: L. Rossman
8//
9// Public interface for infiltration functions.
10//
11// Update History
12// ==============
13// Build 5.1.010:
14// - New Modified Green Ampt infiltration option added.
15// Build 5.1.013:
16// - New function infil_setInfilFactor() added.
17// Build 5.1.015:
18// - Support added for multiple infiltration methods within a project.
19//-----------------------------------------------------------------------------
20
21#ifndef INFIL_H
22#define INFIL_H
23
24//---------------------
25// Enumerated Constants
26//---------------------
28 HORTON, // Horton infiltration
29 MOD_HORTON, // Modified Horton infiltration
30 GREEN_AMPT, // Green-Ampt infiltration
31 MOD_GREEN_AMPT, // Modified Green-Ampt infiltration
32 CURVE_NUMBER}; // SCS Curve Number infiltration
33
34//---------------------
35// Horton Infiltration
36//---------------------
37typedef struct
38{
39 double f0; // initial infil. rate (ft/sec)
40 double fmin; // minimum infil. rate (ft/sec)
41 double Fmax; // maximum total infiltration (ft);
42 double decay; // decay coeff. of infil. rate (1/sec)
43 double regen; // regeneration coeff. of infil. rate (1/sec)
44 //-----------------------------
45 double tp; // present time on infiltration curve (sec)
46 double Fe; // cumulative infiltration (ft)
47 double Fmh; // mod Horton cumulative infiltration (ft) //(5.2.5)
48} THorton;
49
50
51//-------------------------
52// Green-Ampt Infiltration
53//-------------------------
54typedef struct
55{
56 double S; // avg. capillary suction (ft)
57 double Ks; // saturated conductivity (ft/sec)
58 double IMDmax; // max. soil moisture deficit (ft/ft)
59 //-----------------------------
60 double IMD; // current initial soil moisture deficit
61 double F; // current cumulative infiltrated volume (ft)
62 double Fu; // current upper zone infiltrated volume (ft)
63 double Lu; // depth of upper soil zone (ft)
64 double T; // time until start of next rain event (sec)
65 char Sat; // saturation flag
66} TGrnAmpt;
67
68
69//--------------------------
70// Curve Number Infiltration
71//--------------------------
72typedef struct
73{
74 double Smax; // max. infiltration capacity (ft)
75 double regen; // infil. capacity regeneration constant (1/sec)
76 double Tmax; // maximum inter-event time (sec)
77 //-----------------------------
78 double S; // current infiltration capacity (ft)
79 double F; // current cumulative infiltration (ft)
80 double P; // current cumulative precipitation (ft)
81 double T; // current inter-event time (sec)
82 double Se; // current event infiltration capacity (ft)
83 double f; // previous infiltration rate (ft/sec)
84
85} TCurveNum;
86
87//-----------------------------------------------------------------------------
88// Exported Variables
89//-----------------------------------------------------------------------------
90extern THorton* HortInfil;
91extern TGrnAmpt* GAInfil;
92extern TCurveNum* CNInfil;
93
94//-----------------------------------------------------------------------------
95// Infiltration Methods
96//-----------------------------------------------------------------------------
97void infil_create(int n);
98void infil_delete(void);
99int infil_readParams(int m, char* tok[], int ntoks);
100void infil_initState(int j);
101void infil_getState(int j, double x[]);
102void infil_setState(int j, double x[]);
103void infil_setInfilFactor(int j);
104double infil_getInfil(int area, double tstep, double rainfall, double runon,
105 double depth);
106
107void grnampt_getParams(int j, double p[]);
108int grnampt_setParams(TGrnAmpt *infil, double p[]);
109void grnampt_initState(TGrnAmpt *infil);
110double grnampt_getInfil(TGrnAmpt *infil, double tstep, double irate,
111 double depth, int modelType);
112
113#endif
int grnampt_setParams(TGrnAmpt *infil, double p[])
Definition infil.c:595
void infil_create(int n)
Definition infil.c:104
TGrnAmpt * GAInfil
void grnampt_initState(TGrnAmpt *infil)
Definition infil.c:618
double grnampt_getInfil(TGrnAmpt *infil, double tstep, double irate, double depth, int modelType)
Definition infil.c:653
double infil_getInfil(int area, double tstep, double rainfall, double runon, double depth)
Definition infil.c:291
TCurveNum * CNInfil
int infil_readParams(int m, char *tok[], int ntoks)
Definition infil.c:131
THorton * HortInfil
InfilType
Definition infil.h:27
@ MOD_HORTON
Definition infil.h:29
@ MOD_GREEN_AMPT
Definition infil.h:31
@ CURVE_NUMBER
Definition infil.h:32
@ GREEN_AMPT
Definition infil.h:30
@ HORTON
Definition infil.h:28
void infil_setInfilFactor(int j)
Definition infil.c:265
void infil_setState(int j, double x[])
Definition infil.c:244
void infil_getState(int j, double x[])
Definition infil.c:224
void infil_initState(int j)
Definition infil.c:204
void infil_delete(void)
Definition infil.c:119
void grnampt_getParams(int j, double p[])
Definition infil.c:580
Definition infil.h:73
double Smax
Definition infil.h:74
double Tmax
Definition infil.h:76
double P
Definition infil.h:80
double T
Definition infil.h:81
double f
Definition infil.h:83
double F
Definition infil.h:79
double Se
Definition infil.h:82
double regen
Definition infil.h:75
double S
Definition infil.h:78
Definition infil.h:55
double Lu
Definition infil.h:63
double IMDmax
Definition infil.h:58
double F
Definition infil.h:61
double IMD
Definition infil.h:60
char Sat
Definition infil.h:65
double T
Definition infil.h:64
double S
Definition infil.h:56
double Ks
Definition infil.h:57
double Fu
Definition infil.h:62
Definition infil.h:38
double f0
Definition infil.h:39
double decay
Definition infil.h:42
double regen
Definition infil.h:43
double tp
Definition infil.h:45
double Fmh
Definition infil.h:47
double Fe
Definition infil.h:46
double fmin
Definition infil.h:40
double Fmax
Definition infil.h:41