OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
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
30
31#ifndef INFIL_H
32#define INFIL_H
33
34//---------------------
35// Enumerated Constants
36//---------------------
38 HORTON, // Horton infiltration
39 MOD_HORTON, // Modified Horton infiltration
40 GREEN_AMPT, // Green-Ampt infiltration
41 MOD_GREEN_AMPT, // Modified Green-Ampt infiltration
43}; // SCS Curve Number infiltration
44
45//---------------------
46// Horton Infiltration
47//---------------------
48typedef struct {
49 double f0; // initial infil. rate (ft/sec)
50 double fmin; // minimum infil. rate (ft/sec)
51 double Fmax; // maximum total infiltration (ft);
52 double decay; // decay coeff. of infil. rate (1/sec)
53 double regen; // regeneration coeff. of infil. rate (1/sec)
54 //-----------------------------
55 double tp; // present time on infiltration curve (sec)
56 double Fe; // cumulative infiltration (ft)
57 double Fmh; // mod Horton cumulative infiltration (ft) //(5.2.5)
58} THorton;
59
60//-------------------------
61// Green-Ampt Infiltration
62//-------------------------
63typedef struct {
64 double S; // avg. capillary suction (ft)
65 double Ks; // saturated conductivity (ft/sec)
66 double IMDmax; // max. soil moisture deficit (ft/ft)
67 //-----------------------------
68 double IMD; // current initial soil moisture deficit
69 double F; // current cumulative infiltrated volume (ft)
70 double Fu; // current upper zone infiltrated volume (ft)
71 double Lu; // depth of upper soil zone (ft)
72 double T; // time until start of next rain event (sec)
73 char Sat; // saturation flag
74} TGrnAmpt;
75
76//--------------------------
77// Curve Number Infiltration
78//--------------------------
79typedef struct {
80 double Smax; // max. infiltration capacity (ft)
81 double regen; // infil. capacity regeneration constant (1/sec)
82 double Tmax; // maximum inter-event time (sec)
83 //-----------------------------
84 double S; // current infiltration capacity (ft)
85 double F; // current cumulative infiltration (ft)
86 double P; // current cumulative precipitation (ft)
87 double T; // current inter-event time (sec)
88 double Se; // current event infiltration capacity (ft)
89 double f; // previous infiltration rate (ft/sec)
90
91} TCurveNum;
92
93//-----------------------------------------------------------------------------
94// Exported Variables
95//-----------------------------------------------------------------------------
96extern THorton* HortInfil;
97extern TGrnAmpt* GAInfil;
98extern TCurveNum* CNInfil;
99
100//-----------------------------------------------------------------------------
101// Infiltration Methods
102//-----------------------------------------------------------------------------
103void infil_create(int n);
104void infil_delete(void);
105int infil_readParams(int m, char* tok[], int ntoks);
106void infil_initState(int j);
107void infil_getState(int j, double x[]);
108void infil_setState(int j, double x[]);
109void infil_setInfilFactor(int j);
110double infil_getInfil(int area, double tstep, double rainfall, double runon, double depth);
111
112void grnampt_getParams(int j, double p[]);
113int grnampt_setParams(TGrnAmpt* infil, double p[]);
114void grnampt_initState(TGrnAmpt* infil);
115double grnampt_getInfil(TGrnAmpt* infil, double tstep, double irate, double depth, int modelType);
116
117#endif
int grnampt_setParams(TGrnAmpt *infil, double p[])
Assigns Green-Ampt infiltration parameters to a subcatchment.
Definition infil.c:634
void infil_create(int n)
Creates an array of infiltration objects.
Definition infil.c:116
TGrnAmpt * GAInfil
void grnampt_initState(TGrnAmpt *infil)
Initializes state of Green-Ampt infiltration for a subcatchment.
Definition infil.c:656
double grnampt_getInfil(TGrnAmpt *infil, double tstep, double irate, double depth, int modelType)
Computes Green-Ampt infiltration for a subcatchment or a storage node.
Definition infil.c:710
double infil_getInfil(int area, double tstep, double rainfall, double runon, double depth)
Computes infiltration rate depending on infiltration method.
Definition infil.c:330
TCurveNum * CNInfil
int infil_readParams(int m, char *tok[], int ntoks)
Sets infiltration parameters from a line of input data. Format of data line is: subcatch p1 p2 ....
Definition infil.c:144
THorton * HortInfil
InfilType
Definition infil.h:37
@ MOD_HORTON
Definition infil.h:39
@ MOD_GREEN_AMPT
Definition infil.h:41
@ CURVE_NUMBER
Definition infil.h:42
@ GREEN_AMPT
Definition infil.h:40
@ HORTON
Definition infil.h:38
void infil_setInfilFactor(int j)
Assigns a value to the infiltration adjustment factor.
Definition infil.c:301
void infil_setState(int j, double x[])
Restore a subcatchment's selected infiltration model state.
Definition infil.c:271
void infil_getState(int j, double x[])
Retrieves the current infiltration state for a subcatchment.
Definition infil.c:245
void infil_initState(int j)
Initializes state of infiltration for a subcatchment.
Definition infil.c:221
void infil_delete(void)
Deletes infiltration objects associated with subcatchments.
Definition infil.c:129
void grnampt_getParams(int j, double p[])
Retrieves Green-Ampt infiltration parameters for a subcatchment.
Definition infil.c:619
Definition infil.h:79
double Smax
Definition infil.h:80
double Tmax
Definition infil.h:82
double P
Definition infil.h:86
double T
Definition infil.h:87
double f
Definition infil.h:89
double F
Definition infil.h:85
double Se
Definition infil.h:88
double regen
Definition infil.h:81
double S
Definition infil.h:84
Definition infil.h:63
double Lu
Definition infil.h:71
double IMDmax
Definition infil.h:66
double F
Definition infil.h:69
double IMD
Definition infil.h:68
char Sat
Definition infil.h:73
double T
Definition infil.h:72
double S
Definition infil.h:64
double Ks
Definition infil.h:65
double Fu
Definition infil.h:70
Definition infil.h:48
double f0
Definition infil.h:49
double decay
Definition infil.h:52
double regen
Definition infil.h:53
double tp
Definition infil.h:55
double Fmh
Definition infil.h:57
double Fe
Definition infil.h:56
double fmin
Definition infil.h:50
double Fmax
Definition infil.h:51