29 #ifndef EN_API_FLOAT_TYPE
30 #define EN_API_FLOAT_TYPE float
46 #define DLLEXPORT extern "C" __declspec(dllexport)
48 #define DLLEXPORT __declspec(dllexport) __stdcall
51 #define DLLEXPORT __stdcall
52 #elif defined(__APPLE__)
65 #define EN_ELEVATION 0
66 #define EN_BASEDEMAND 1
70 #define EN_SOURCEQUAL 5
71 #define EN_SOURCEPAT 6
72 #define EN_SOURCETYPE 7
73 #define EN_TANKLEVEL 8
76 #define EN_PRESSURE 11
78 #define EN_SOURCEMASS 13
79 #define EN_INITVOLUME 14
80 #define EN_MIXMODEL 15
81 #define EN_MIXZONEVOL 16
83 #define EN_TANKDIAM 17
84 #define EN_MINVOLUME 18
85 #define EN_VOLCURVE 19
86 #define EN_MINLEVEL 20
87 #define EN_MAXLEVEL 21
88 #define EN_MIXFRACTION 22
89 #define EN_TANK_KBULK 23
90 #define EN_TANKVOLUME 24
91 #define EN_MAXVOLUME 25
95 #define EN_ROUGHNESS 2
96 #define EN_MINORLOSS 3
97 #define EN_INITSTATUS 4
98 #define EN_INITSETTING 5
102 #define EN_VELOCITY 9
103 #define EN_HEADLOSS 10
105 #define EN_SETTING 12
107 #define EN_LINKQUAL 14
108 #define EN_LINKPATTERN 15
110 #define EN_DURATION 0
112 #define EN_QUALSTEP 2
113 #define EN_PATTERNSTEP 3
114 #define EN_PATTERNSTART 4
115 #define EN_REPORTSTEP 5
116 #define EN_REPORTSTART 6
117 #define EN_RULESTEP 7
118 #define EN_STATISTIC 8
120 #define EN_STARTTIME 10
123 #define EN_HALTFLAG 13
124 #define EN_NEXTEVENT 14
126 #define EN_ITERATIONS 0
127 #define EN_RELATIVEERROR 1
129 #define EN_NODECOUNT 0
130 #define EN_TANKCOUNT 1
131 #define EN_LINKCOUNT 2
132 #define EN_PATCOUNT 3
133 #define EN_CURVECOUNT 4
134 #define EN_CONTROLCOUNT 5
136 #define EN_JUNCTION 0
137 #define EN_RESERVOIR 1
157 #define EN_SETPOINT 2
158 #define EN_FLOWPACED 3
172 #define EN_ACCURACY 1
173 #define EN_TOLERANCE 2
174 #define EN_EMITEXPON 3
175 #define EN_DEMANDMULT 4
177 #define EN_LOWLEVEL 0
180 #define EN_TIMEOFDAY 3
195 #define EN_INITFLOW 10
228 #if defined(__cplusplus)
244 int DLLEXPORT
ENepanet(
char *inpFile,
char *rptFile,
char *binOutFile,
void (*callback) (
char *));
254 int DLLEXPORT
ENopen(
char *inpFile,
char *rptFile,
char *binOutFile);
300 int DLLEXPORT
ENinitH(
int initFlag);
314 int DLLEXPORT
ENrunH(
long *currentTime);
320 int DLLEXPORT
ENnextH(
long *tStep);
321 int DLLEXPORT ENcloseH();
322 int DLLEXPORT ENsavehydfile(
char *filename);
323 int DLLEXPORT ENusehydfile(
char *filename);
325 int DLLEXPORT ENsolveQ();
326 int DLLEXPORT ENopenQ();
327 int DLLEXPORT ENinitQ(
int saveFlag);
328 int DLLEXPORT ENrunQ(
long *currentTime);
329 int DLLEXPORT ENnextQ(
long *tStep);
330 int DLLEXPORT ENstepQ(
long *timeLeft);
331 int DLLEXPORT ENcloseQ();
333 int DLLEXPORT ENwriteline(
char *line);
334 int DLLEXPORT ENreport();
335 int DLLEXPORT ENresetreport();
336 int DLLEXPORT ENsetreport(
char *reportFormat);
338 int DLLEXPORT ENgetcontrol(
int controlIndex,
int *controlType,
int *linkIdx, EN_API_FLOAT_TYPE *setting,
int *nodeIdx, EN_API_FLOAT_TYPE *level);
339 int DLLEXPORT ENgetcount(
int code,
int *count);
340 int DLLEXPORT ENgetoption(
int code, EN_API_FLOAT_TYPE *value);
341 int DLLEXPORT ENgettimeparam(
int code,
long *value);
342 int DLLEXPORT ENgetflowunits(
int *code);
343 int DLLEXPORT ENgetpatternindex(
char *
id,
int *index);
344 int DLLEXPORT ENgetpatternid(
int index,
char *
id);
345 int DLLEXPORT ENgetpatternlen(
int index,
int *len);
346 int DLLEXPORT ENgetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE *value);
347 int DLLEXPORT ENgetaveragepatternvalue(
int index, EN_API_FLOAT_TYPE *value);
348 int DLLEXPORT ENgetqualtype(
int *qualcode,
int *tracenode);
349 int DLLEXPORT ENgeterror(
int errcode,
char *errmsg,
int maxLen);
350 int DLLEXPORT ENgetstatistic(
int code, EN_API_FLOAT_TYPE* value);
352 int DLLEXPORT ENgetnodeindex(
char *
id,
int *index);
353 int DLLEXPORT ENgetnodeid(
int index,
char *
id);
354 int DLLEXPORT ENgetnodetype(
int index,
int *code);
355 int DLLEXPORT ENgetnodevalue(
int index,
int code, EN_API_FLOAT_TYPE *value);
356 int DLLEXPORT ENgetcoord(
int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
357 int DLLEXPORT ENsetcoord(
int index, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
359 int DLLEXPORT ENgetnumdemands(
int nodeIndex,
int *numDemands);
360 int DLLEXPORT ENgetbasedemand(
int nodeIndex,
int demandIdx, EN_API_FLOAT_TYPE *baseDemand);
361 int DLLEXPORT ENgetdemandpattern(
int nodeIndex,
int demandIdx,
int *pattIdx);
363 int DLLEXPORT ENgetlinkindex(
char *
id,
int *index);
364 int DLLEXPORT ENgetlinkid(
int index,
char *
id);
365 int DLLEXPORT ENgetlinktype(
int index,
int *code);
366 int DLLEXPORT ENgetlinknodes(
int index,
int *node1,
int *node2);
367 int DLLEXPORT ENgetlinkvalue(
int index,
int code, EN_API_FLOAT_TYPE *value);
369 int DLLEXPORT ENgetcurve(
int curveIndex,
char*
id,
int *nValues, EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues);
370 int DLLEXPORT ENgetheadcurve(
int,
char *);
380 int DLLEXPORT ENgetversion(
int *version);
382 int DLLEXPORT ENsetcontrol(
int cindex,
int ctype,
int lindex, EN_API_FLOAT_TYPE setting,
int nindex, EN_API_FLOAT_TYPE level);
383 int DLLEXPORT ENsetnodevalue(
int index,
int code, EN_API_FLOAT_TYPE v);
384 int DLLEXPORT ENsetlinkvalue(
int index,
int code, EN_API_FLOAT_TYPE v);
385 int DLLEXPORT ENaddpattern(
char *
id);
386 int DLLEXPORT ENsetpattern(
int index, EN_API_FLOAT_TYPE *f,
int len);
387 int DLLEXPORT ENsetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE value);
388 int DLLEXPORT ENsettimeparam(
int code,
long value);
389 int DLLEXPORT ENsetoption(
int code, EN_API_FLOAT_TYPE v);
390 int DLLEXPORT ENsetstatusreport(
int code);
391 int DLLEXPORT ENsetqualtype(
int qualcode,
char *chemname,
char *chemunits,
char *tracenode);
392 int DLLEXPORT ENgetqualinfo(
int *qualcode,
char *chemname,
char *chemunits,
int *tracenode);
393 int DLLEXPORT ENsetbasedemand(
int nodeIndex,
int demandIdx, EN_API_FLOAT_TYPE baseDemand);
395 int DLLEXPORT ENgetcurveindex(
char *
id,
int *index);
396 int DLLEXPORT ENgetcurveid(
int index,
char *
id);
397 int DLLEXPORT ENgetcurvelen(
int index,
int *len);
398 int DLLEXPORT ENgetcurvevalue(
int index,
int pnt, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
399 int DLLEXPORT ENsetcurvevalue(
int index,
int pnt, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
400 int DLLEXPORT ENsetcurve(
int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y,
int len);
401 int DLLEXPORT ENaddcurve(
char *
id);
403 #if defined(__cplusplus)
int DLLEXPORT ENclose()
Frees all memory and files used by EPANET.
Definition: epanet.c:273
int DLLEXPORT ENopen(char *inpFile, char *rptFile, char *binOutFile)
Opens EPANET input file & reads in network data.
Definition: epanet.c:187
int DLLEXPORT ENnextH(long *tStep)
Determine time (in seconds) until next hydraulic event.
Definition: epanet.c:497
int DLLEXPORT ENsaveinpfile(char *filename)
Saves current data to "INP" formatted text file.
Definition: epanet.c:259
int DLLEXPORT ENsaveH()
Saves hydraulic results to binary file.
Definition: epanet.c:371
int DLLEXPORT ENrunH(long *currentTime)
Run a hydraulic solution period.
Definition: epanet.c:475
int DLLEXPORT ENopenH()
Sets up data structures for hydraulic analysis.
Definition: epanet.c:405
int DLLEXPORT ENinitH(int initFlag)
Initializes hydraulic analysis.
Definition: epanet.c:433
int DLLEXPORT ENepanet(char *inpFile, char *rptFile, char *binOutFile, void(*callback)(char *))
runs a complete EPANET simulation
Definition: epanet.c:156
int DLLEXPORT ENsolveH()
Solves the network hydraulics for all time periods.
Definition: epanet.c:316
int DLLEXPORT ENgetpumptype(int linkIndex, int *outType)
Get the type of pump.
Definition: epanet.c:2785