EPANET  2.1
epanet2.h
Go to the documentation of this file.
1 
6 /*
7  *******************************************************************
8 
9  EPANET2.H - Prototypes for EPANET Functions Exported to DLL Toolkit
10 
11  VERSION: 2.00
12  DATE: 5/8/00
13  10/25/00
14  3/1/01
15  8/15/07 (2.00.11)
16  2/14/08 (2.00.12)
17  AUTHORS: L. Rossman - US EPA - NRMRL
18  OpenWaterAnalytics members: see git stats for contributors
19 
20  *******************************************************************
21  */
22 
23 
24 #ifndef EPANET2_H
25 #define EPANET2_H
26 
27 // the toolkit can be compiled with support for double-precision as well.
28 // just make sure that you use the correct #define in your client code.
29 #ifndef EN_API_FLOAT_TYPE
30  #define EN_API_FLOAT_TYPE float
31 #endif
32 
33 // --- define WINDOWS
34 #undef WINDOWS
35 #ifdef _WIN32
36  #define WINDOWS
37 #endif
38 #ifdef __WIN32__
39  #define WINDOWS
40 #endif
41 
42 // --- define DLLEXPORT
43 #ifndef DLLEXPORT
44  #ifdef WINDOWS
45  #ifdef __cplusplus
46  #define DLLEXPORT extern "C" __declspec(dllexport)
47  #else
48  #define DLLEXPORT __declspec(dllexport) __stdcall
49  #endif // __cplusplus
50  #elif defined(CYGWIN)
51  #define DLLEXPORT __stdcall
52  #elif defined(__APPLE__)
53  #ifdef __cplusplus
54  #define DLLEXPORT
55  #else
56  #define DLLEXPORT
57  #endif
58  #else
59  #define DLLEXPORT
60  #endif
61 #endif
62 
63 
64 // --- Define the EPANET toolkit constants
65 
67 typedef enum {
70  EN_PATTERN = 2,
71  EN_EMITTER = 3,
77  EN_DEMAND = 9,
78  EN_HEAD = 10,
79  EN_PRESSURE = 11,
80  EN_QUALITY = 12,
83  EN_MIXMODEL = 15,
85  EN_TANKDIAM = 17,
86  EN_MINVOLUME = 18,
87  EN_VOLCURVE = 19,
88  EN_MINLEVEL = 20,
89  EN_MAXLEVEL = 21,
95 
97 typedef enum {
98  EN_DIAMETER = 0,
99  EN_LENGTH = 1,
100  EN_ROUGHNESS = 2,
101  EN_MINORLOSS = 3,
102  EN_INITSTATUS = 4,
103  EN_INITSETTING = 5,
104  EN_KBULK = 6,
105  EN_KWALL = 7,
106  EN_FLOW = 8,
107  EN_VELOCITY = 9,
108  EN_HEADLOSS = 10,
109  EN_STATUS = 11,
110  EN_SETTING = 12,
111  EN_ENERGY = 13,
112  EN_LINKQUAL = 14,
113  EN_LINKPATTERN = 15
115 
117 typedef enum {
118  EN_DURATION = 0,
119  EN_HYDSTEP = 1,
120  EN_QUALSTEP = 2,
121  EN_PATTERNSTEP = 3,
122  EN_PATTERNSTART = 4,
123  EN_REPORTSTEP = 5,
124  EN_REPORTSTART = 6,
125  EN_RULESTEP = 7,
126  EN_STATISTIC = 8,
127  EN_PERIODS = 9,
128  EN_STARTTIME = 10,
129  EN_HTIME = 11,
130  EN_QTIME = 12,
131  EN_HALTFLAG = 13,
132  EN_NEXTEVENT = 14
134 
135 
136 typedef enum {
137  EN_ITERATIONS = 0,
138  EN_RELATIVEERROR = 1
139 } EN_AnalysisStatistic;
140 
141 typedef enum {
148 } EN_CountType;
149 
150 typedef enum {
151  EN_JUNCTION = 0,
152  EN_RESERVOIR = 1,
153  EN_TANK = 2
154 } EN_NodeType;
155 
156 
157 typedef enum {
158  EN_CVPIPE = 0, /* Link types. */
159  EN_PIPE = 1, /* See LinkType in TYPES.H */
160  EN_PUMP = 2,
161  EN_PRV = 3,
162  EN_PSV = 4,
163  EN_PBV = 5,
164  EN_FCV = 6,
165  EN_TCV = 7,
166  EN_GPV = 8
167 } EN_LinkType;
168 
169 
170 typedef enum {
171  EN_NONE = 0, /* Quality analysis types. */
172  EN_CHEM = 1, /* See QualType in TYPES.H */
173  EN_AGE = 2,
174  EN_TRACE = 3
175 } EN_QualityType;
176 
177 typedef enum {
178  EN_CONCEN = 0, /* Source quality types. */
179  EN_MASS = 1, /* See SourceType in TYPES.H. */
180  EN_SETPOINT = 2,
181  EN_FLOWPACED = 3
182 } EN_SourceType;
183 
184 typedef enum {
185  EN_CFS = 0, /* Flow units types. */
186  EN_GPM = 1, /* See FlowUnitsType */
187  EN_MGD = 2, /* in TYPES.H. */
188  EN_IMGD = 3,
189  EN_AFD = 4,
190  EN_LPS = 5,
191  EN_LPM = 6,
192  EN_MLD = 7,
193  EN_CMH = 8,
194  EN_CMD = 9
195 } EN_FlowUnits;
196 
197 
199 typedef enum {
200  EN_TRIALS = 0,
201  EN_ACCURACY = 1,
202  EN_TOLERANCE = 2,
203  EN_EMITEXPON = 3,
204  EN_DEMANDMULT = 4
205 } EN_Option;
206 
207 typedef enum {
208  EN_LOWLEVEL = 0, /* Control types. */
209  EN_HILEVEL = 1, /* See ControlType */
210  EN_TIMER = 2, /* in TYPES.H. */
211  EN_TIMEOFDAY = 3
212 } EN_ControlType;
213 
214 
215 
216 typedef enum {
217  EN_AVERAGE = 1, /* Time statistic types. */
218  EN_MINIMUM = 2, /* See TstatType in TYPES.H */
219  EN_MAXIMUM = 3,
220  EN_RANGE = 4
221 } EN_StatisticType;
222 
223 
224 
225 typedef enum {
226  EN_MIX1 = 0, /* Tank mixing models */
227  EN_MIX2 = 1,
228  EN_FIFO = 2,
229  EN_LIFO = 3
230 } EN_MixingModel;
231 
232 
233 
234 typedef enum {
235  EN_NOSAVE = 0,
236  EN_SAVE = 1,
237  EN_INITFLOW = 10,
238  EN_SAVE_AND_INIT = 11
239 } EN_SaveOption;
240 
241 
242 
243 typedef enum {
244  EN_CONST_HP = 0, /* constant horsepower */
245  EN_POWER_FUNC = 1, /* power function */
246  EN_CUSTOM = 2 /* user-defined custom curve */
247 } EN_CurveType;
248 
249 
250 
251 // --- Declare the EPANET toolkit functions
252 #if defined(__cplusplus)
253 extern "C" {
254 #endif
255 
268  int DLLEXPORT ENepanet(char *inpFile, char *rptFile, char *binOutFile, void (*callback) (char *));
269 
277  int DLLEXPORT ENopen(char *inpFile, char *rptFile, char *binOutFile);
278 
284  int DLLEXPORT ENsaveinpfile(char *filename);
285 
290  int DLLEXPORT ENclose();
291 
296  int DLLEXPORT ENsolveH();
297 
305  int DLLEXPORT ENsaveH();
306 
311  int DLLEXPORT ENopenH();
312 
318  int DLLEXPORT ENinitH(int initFlag);
319 
330  int DLLEXPORT ENrunH(long *currentTime);
331 
340  int DLLEXPORT ENnextH(long *tStep);
341 
342 
347  int DLLEXPORT ENcloseH();
348 
354  int DLLEXPORT ENsavehydfile(char *filename);
355 
361  int DLLEXPORT ENusehydfile(char *filename);
362 
367  int DLLEXPORT ENsolveQ();
368 
373  int DLLEXPORT ENopenQ();
374 
380  int DLLEXPORT ENinitQ(int saveFlag);
381 
391  int DLLEXPORT ENrunQ(long *currentTime);
392 
402  int DLLEXPORT ENnextQ(long *tStep);
403 
412  int DLLEXPORT ENstepQ(long *timeLeft);
413 
418  int DLLEXPORT ENcloseQ();
419 
425  int DLLEXPORT ENwriteline(char *line);
426 
431  int DLLEXPORT ENreport();
432 
437  int DLLEXPORT ENresetreport();
438 
443  int DLLEXPORT ENsetreport(char *reportFormat);
444 
455  int DLLEXPORT ENgetcontrol(int controlIndex, int *controlType, int *linkIndex, EN_API_FLOAT_TYPE *setting, int *nodeIndex, EN_API_FLOAT_TYPE *level);
456 
463  int DLLEXPORT ENgetcount(int code, int *count);
464 
471  int DLLEXPORT ENgetoption(int code, EN_API_FLOAT_TYPE *value);
472 
479  int DLLEXPORT ENgettimeparam(int code, long *value);
480 
486  int DLLEXPORT ENgetflowunits(int *code);
487 
495  int DLLEXPORT ENgetpatternindex(char *id, int *index);
496 
504  int DLLEXPORT ENgetpatternid(int index, char *id);
505 
512  int DLLEXPORT ENgetpatternlen(int index, int *len);
513 
521  int DLLEXPORT ENgetpatternvalue(int index, int period, EN_API_FLOAT_TYPE *value);
522 
529  int DLLEXPORT ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value);
530 
538  int DLLEXPORT ENgetqualtype(int *qualcode, int *tracenode);
539 
547  int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen);
548 
555  int DLLEXPORT ENgetstatistic(int code, EN_API_FLOAT_TYPE* value);
556 
564  int DLLEXPORT ENgetnodeindex(char *id, int *index);
565 
573  int DLLEXPORT ENgetnodeid(int index, char *id);
574 
581  int DLLEXPORT ENgetnodetype(int index, int *code);
582 
591  int DLLEXPORT ENgetnodevalue(int index, int code, EN_API_FLOAT_TYPE *value);
592 
601  int DLLEXPORT ENgetcoord(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
602 
611  int DLLEXPORT ENsetcoord(int index, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
612 
619  int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands);
620 
627  int DLLEXPORT ENgetbasedemand(int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE *baseDemand);
628 
636  int DLLEXPORT ENgetdemandpattern(int nodeIndex, int demandIndex, int *pattIndex);
637 
645  int DLLEXPORT ENgetlinkindex(char *id, int *index);
646 
654  int DLLEXPORT ENgetlinkid(int index, char *id);
655 
663  int DLLEXPORT ENgetlinktype(int index, int *code);
664 
673  int DLLEXPORT ENgetlinknodes(int index, int *node1, int *node2);
674 
683  int DLLEXPORT ENgetlinkvalue(int index, int code, EN_API_FLOAT_TYPE *value);
684 
694  int DLLEXPORT ENgetcurve(int curveIndex, char* id, int *nValues, EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues);
695 
702  int DLLEXPORT ENgetheadcurveindex(int pumpIndex, int *curveIndex);
703 
711  int DLLEXPORT ENgetpumptype(int linkIndex, int *outType);
712 
718  int DLLEXPORT ENgetversion(int *version);
719 
730  int DLLEXPORT ENsetcontrol(int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level);
731 
740  int DLLEXPORT ENsetnodevalue(int index, int code, EN_API_FLOAT_TYPE v);
741 
750  int DLLEXPORT ENsetlinkvalue(int index, int code, EN_API_FLOAT_TYPE v);
751 
758  int DLLEXPORT ENaddpattern(char *id);
759 
768  int DLLEXPORT ENsetpattern(int index, EN_API_FLOAT_TYPE *f, int len);
769 
777  int DLLEXPORT ENsetpatternvalue(int index, int period, EN_API_FLOAT_TYPE value);
778 
786  int DLLEXPORT ENsettimeparam(int code, long value);
787 
795  int DLLEXPORT ENsetoption(int code, EN_API_FLOAT_TYPE v);
796 
802  int DLLEXPORT ENsetstatusreport(int code);
803 
815  int DLLEXPORT ENsetqualtype(int qualcode, char *chemname, char *chemunits, char *tracenode);
816 
826  int DLLEXPORT ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode);
827 
836  int DLLEXPORT ENsetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand);
837 
845  int DLLEXPORT ENgetcurveindex(char *id, int *index);
846 
856  int DLLEXPORT ENgetcurveid(int index, char *id);
857 
865  int DLLEXPORT ENgetcurvelen(int index, int *len);
866 
876  int DLLEXPORT ENgetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
877 
886  int DLLEXPORT ENsetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
887 
896  int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y, int len);
897 
904  int DLLEXPORT ENaddcurve(char *id);
905 
906 #if defined(__cplusplus)
907 }
908 #endif
909 
910 #endif //EPANET2_H
int ENgettimeparam(int code, long *value)
Retrieves value of specific time parameter.
Definition: epanet.c:848
int ENgetversion(int *version)
Get the version number. This number is to be interpreted with implied decimals, i.e., "20100" == "2(.)01(.)00".
Definition: epanet.c:750
Definition: epanet2.h:90
Definition: epanet2.h:82
int ENaddpattern(char *id)
Add a new time pattern.
Definition: epanet.c:1950
EN_Option
Simulation Option codes.
Definition: epanet2.h:199
Definition: epanet2.h:92
int ENgetcontrol(int controlIndex, int *controlType, int *linkIndex, EN_API_FLOAT_TYPE *setting, int *nodeIndex, EN_API_FLOAT_TYPE *level)
Retrieves parameters that define a simple control.
Definition: epanet.c:767
Definition: epanet2.h:89
int ENgetpatternindex(char *id, int *index)
Retrieves the index of the time pattern with specified ID.
Definition: epanet.c:885
int ENgetpatternlen(int index, int *len)
Retrieves the number of multipliers in a time pattern.
Definition: epanet.c:913
int ENsetreport(char *reportFormat)
Processes a reporting format command.
Definition: epanet.c:732
int ENaddcurve(char *id)
Adds a new curve appended to the end of the existing curves.
Definition: epanet.c:2040
Definition: epanet2.h:73
int ENsetoption(int code, EN_API_FLOAT_TYPE v)
Set a value for an anlysis option.
Definition: epanet.c:2241
Definition: epanet2.h:79
Definition: epanet2.h:87
int ENsetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y)
Sets x,y point for a specific point and curve.
Definition: epanet.c:2145
int ENgetpatternvalue(int index, int period, EN_API_FLOAT_TYPE *value)
Retrive a multiplier from a pattern for a specific time period.
Definition: epanet.c:922
int ENgetqualtype(int *qualcode, int *tracenode)
Retrieve the type of quality analytis to be run.
Definition: epanet.c:982
Definition: epanet2.h:68
int ENgetnumdemands(int nodeIndex, int *numDemands)
Get the number of demand categories for a node.
Definition: epanet.c:3085
int ENsaveH()
Saves hydraulic results to binary file.
Definition: epanet.c:371
int ENsetcoord(int index, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y)
Set coordinates (x,y) for a node.
Definition: epanet.c:1093
int ENgetcurve(int curveIndex, char *id, int *nValues, EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues)
Get a curve's properties.
Definition: epanet.c:1469
EN_NodeProperty
Node property codes.
Definition: epanet2.h:67
Definition: epanet2.h:93
int ENsetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand)
Sets the node's base demand for a category.
Definition: epanet.c:3121
Definition: epanet2.h:81
int ENopenH()
Sets up data structures for hydraulic analysis.
Definition: epanet.c:405
int ENgetcurveindex(char *id, int *index)
Retrieves index of curve with specific ID.
Definition: epanet.c:932
Definition: epanet2.h:72
int ENopen(char *inpFile, char *rptFile, char *binOutFile)
Opens EPANET input file & reads in network data.
Definition: epanet.c:187
Definition: epanet2.h:147
int ENgetlinktype(int index, int *code)
Get the link type code for a specified link.
Definition: epanet.c:1303
int ENcloseH()
Frees data allocated by hydraulics solver.
Definition: epanet.c:498
int ENgetcoord(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y)
Get coordinates (x,y) for a node.
Definition: epanet.c:1078
int ENgetcurveid(int index, char *id)
Retrieves ID of a curve with specific index.
Definition: epanet.c:950
int ENgeterror(int errcode, char *errmsg, int maxLen)
Get the text of an error code.
Definition: epanet.c:1005
int ENsetpattern(int index, EN_API_FLOAT_TYPE *f, int len)
Set multipliers for a specific pattern.
Definition: epanet.c:2010
int ENgetoption(int code, EN_API_FLOAT_TYPE *value)
Gets value for an analysis option.
Definition: epanet.c:824
int ENsetpatternvalue(int index, int period, EN_API_FLOAT_TYPE value)
Set the multiplier for a specific pattern at a specific period.
Definition: epanet.c:2030
int ENgetlinkindex(char *id, int *index)
Get the index of a Link with specified ID.
Definition: epanet.c:1283
Definition: epanet2.h:70
int ENgetdemandpattern(int nodeIndex, int demandIndex, int *pattIndex)
Get the index of the demand pattern assigned to a node for a category index.
Definition: epanet.c:3137
int ENgetpumptype(int linkIndex, int *outType)
Get the type of pump.
Definition: epanet.c:2349
EN_CountType
Definition: epanet2.h:141
int ENsettimeparam(int code, long value)
Set the value for a time parameter.
Definition: epanet.c:2156
Definition: epanet2.h:85
int ENgetlinknodes(int index, int *node1, int *node2)
Get the indexes of a link's start- and end-nodes.
Definition: epanet.c:1313
int ENepanet(char *inpFile, char *rptFile, char *binOutFile, void(*callback)(char *))
runs a complete EPANET simulation
Definition: epanet.c:156
Definition: epanet2.h:91
int ENsetstatusreport(int code)
Sets the level of hydraulic status reporting.
Definition: epanet.c:2285
int ENcloseQ()
Frees data allocated by water quality solver.
Definition: epanet.c:684
Definition: epanet2.h:86
Definition: epanet2.h:83
int ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode)
Get quality analysis information (type, chemical name, units, trace node ID)
Definition: epanet.c:991
Definition: epanet2.h:76
int ENsavehydfile(char *filename)
Copies binary hydraulics file to disk.
Definition: epanet.c:508
int ENresetreport()
Resets report options to default values.
Definition: epanet.c:721
int ENsolveH()
Solves the network hydraulics for all time periods.
Definition: epanet.c:316
int ENgetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y)
retrieves x,y point for a specific point number and curve
Definition: epanet.c:969
int ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value)
Retrieve the average multiplier value in a time pattern.
Definition: epanet.c:3151
int ENgetnodeid(int index, char *id)
Get the string ID of the specified node.
Definition: epanet.c:1053
int ENgetnodeindex(char *id, int *index)
Get index of node with specified ID.
Definition: epanet.c:1043
int ENreport()
Writes simulation report to the report file.
Definition: epanet.c:709
int ENrunQ(long *currentTime)
Retrieves hydraulic & WQ results at time t.
Definition: epanet.c:649
int ENgetcurvelen(int index, int *len)
Retrieves number of points in a curve.
Definition: epanet.c:960
EN_TimeProperty
Time parameter codes.
Definition: epanet2.h:117
Definition: epanet2.h:144
int ENgetheadcurveindex(int pumpIndex, int *curveIndex)
Retrieves the curve index for a specified pump index.
Definition: epanet.c:2341
int ENgetlinkvalue(int index, int code, EN_API_FLOAT_TYPE *value)
Get a property value for specified link.
Definition: epanet.c:1325
int ENrunH(long *currentTime)
Run a hydraulic solution period.
Definition: epanet.c:475
int ENsaveinpfile(char *filename)
Saves current data to "INP" formatted text file.
Definition: epanet.c:259
EN_LinkProperty
Link property codes.
Definition: epanet2.h:97
int ENgetflowunits(int *code)
Retrieves the flow units code.
Definition: epanet.c:876
Definition: epanet2.h:69
int ENsetnodevalue(int index, int code, EN_API_FLOAT_TYPE v)
Set a property value for a node.
Definition: epanet.c:1582
Definition: epanet2.h:142
int ENgetnodevalue(int index, int code, EN_API_FLOAT_TYPE *value)
Get a property value for specified node.
Definition: epanet.c:1106
int ENgetlinkid(int index, char *id)
Get the string ID of a link with specified index.
Definition: epanet.c:1293
Definition: epanet2.h:71
int ENinitQ(int saveFlag)
Initializes water quality analysis.
Definition: epanet.c:633
Definition: epanet2.h:143
Definition: epanet2.h:145
int ENgetpatternid(int index, char *id)
Retrieves ID of a time pattern with specific index.
Definition: epanet.c:903
int ENsetlinkvalue(int index, int code, EN_API_FLOAT_TYPE v)
Set a proprty value for a link.
Definition: epanet.c:1831
int ENstepQ(long *timeLeft)
Advances WQ simulation by a single WQ time step.
Definition: epanet.c:672
int ENnextQ(long *tStep)
Advances WQ simulation to next hydraulic event.
Definition: epanet.c:660
int ENgetcount(int code, int *count)
Retrieves the number of components of a given type in the network.
Definition: epanet.c:806
Definition: epanet2.h:74
int ENsetcurve(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y, int len)
Sets x,y values for a specified curve.
Definition: epanet.c:2119
int ENinitH(int initFlag)
Initializes hydraulic analysis.
Definition: epanet.c:433
int ENsetcontrol(int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level)
Specify parameters to define a simple control.
Definition: epanet.c:1508
int ENgetstatistic(int code, EN_API_FLOAT_TYPE *value)
Get hydraulic simulation statistic.
Definition: epanet.c:1021
Definition: epanet2.h:75
int ENusehydfile(char *filename)
Opens previously saved binary hydraulics file.
Definition: epanet.c:527
Definition: epanet2.h:84
int ENgetnodetype(int index, int *code)
Get the type of node with specified index.
Definition: epanet.c:1063
Definition: epanet2.h:146
int ENopenQ()
Sets up data structures for WQ analysis.
Definition: epanet.c:614
int ENgetbasedemand(int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE *baseDemand)
Get a node's base demand for a specified category.
Definition: epanet.c:3098
Definition: epanet2.h:78
Definition: epanet2.h:88
int ENsetqualtype(int qualcode, char *chemname, char *chemunits, char *tracenode)
Sets type of quality analysis called for.
Definition: epanet.c:2294
Definition: epanet2.h:77
int ENsolveQ()
Solves for network water quality in all time periods.
Definition: epanet.c:559
int ENwriteline(char *line)
Writes line of text to the report file.
Definition: epanet.c:701
int ENnextH(long *tStep)
Determine time (in seconds) until next hydraulic event.
Definition: epanet.c:486
int ENclose()
Frees all memory and files used by EPANET.
Definition: epanet.c:273
Definition: epanet2.h:80