epanet.c reset file variables to NULL so if the code is executed again without termination, the variables will be in a valid initial state. Added retrieval of EN_STARTTIME to ENgettimeparam. Added retrieval of EN_TANKVOLUME to ENgetnodevalue Added retrieval of EN_LINKQUAL to ENgetlinkvalue Fixed the check for identical filenames so it now allows for an empty (not generated) report file and outfile. Added ENgetbasedemand and ENgetdemandpattern functions input2.c Fixed some compiler warnings git-svn-id: https://epanet.svn.sourceforge.net/svnroot/epanet/BASE/trunk@424 c320cabd-cc23-0410-96d8-e60fbf53ed7f
250 lines
6.8 KiB
C
Executable File
250 lines
6.8 KiB
C
Executable File
/*
|
|
** EPANET2.H
|
|
**
|
|
** C/C++ header file for EPANET Programmers Toolkit
|
|
**
|
|
** Last updated on 2/14/08 (2.00.12)
|
|
*/
|
|
|
|
#ifndef EPANET2_H
|
|
#define EPANET2_H
|
|
|
|
// --- Define the EPANET toolkit constants
|
|
|
|
#define EN_ELEVATION 0 /* Node parameters */
|
|
#define EN_BASEDEMAND 1
|
|
#define EN_PATTERN 2
|
|
#define EN_EMITTER 3
|
|
#define EN_INITQUAL 4
|
|
#define EN_SOURCEQUAL 5
|
|
#define EN_SOURCEPAT 6
|
|
#define EN_SOURCETYPE 7
|
|
#define EN_TANKLEVEL 8
|
|
#define EN_DEMAND 9
|
|
#define EN_HEAD 10
|
|
#define EN_PRESSURE 11
|
|
#define EN_QUALITY 12
|
|
#define EN_SOURCEMASS 13
|
|
#define EN_INITVOLUME 14
|
|
#define EN_MIXMODEL 15
|
|
#define EN_MIXZONEVOL 16
|
|
|
|
#define EN_TANKDIAM 17
|
|
#define EN_MINVOLUME 18
|
|
#define EN_VOLCURVE 19
|
|
#define EN_MINLEVEL 20
|
|
#define EN_MAXLEVEL 21
|
|
#define EN_MIXFRACTION 22
|
|
#define EN_TANK_KBULK 23
|
|
|
|
#define EN_TANKVOLUME 24 /* TNT */
|
|
|
|
#define EN_DIAMETER 0 /* Link parameters */
|
|
#define EN_LENGTH 1
|
|
#define EN_ROUGHNESS 2
|
|
#define EN_MINORLOSS 3
|
|
#define EN_INITSTATUS 4
|
|
#define EN_INITSETTING 5
|
|
#define EN_KBULK 6
|
|
#define EN_KWALL 7
|
|
#define EN_FLOW 8
|
|
#define EN_VELOCITY 9
|
|
#define EN_HEADLOSS 10
|
|
#define EN_STATUS 11
|
|
#define EN_SETTING 12
|
|
#define EN_ENERGY 13
|
|
#define EN_LINKQUAL 14 /* TNT */
|
|
|
|
#define EN_DURATION 0 /* Time parameters */
|
|
#define EN_HYDSTEP 1
|
|
#define EN_QUALSTEP 2
|
|
#define EN_PATTERNSTEP 3
|
|
#define EN_PATTERNSTART 4
|
|
#define EN_REPORTSTEP 5
|
|
#define EN_REPORTSTART 6
|
|
#define EN_RULESTEP 7
|
|
#define EN_STATISTIC 8
|
|
#define EN_PERIODS 9
|
|
#define EN_STARTTIME 10 /* Added TNT 10/2/2009 */
|
|
|
|
#define EN_NODECOUNT 0 /* Component counts */
|
|
#define EN_TANKCOUNT 1
|
|
#define EN_LINKCOUNT 2
|
|
#define EN_PATCOUNT 3
|
|
#define EN_CURVECOUNT 4
|
|
#define EN_CONTROLCOUNT 5
|
|
|
|
#define EN_JUNCTION 0 /* Node types */
|
|
#define EN_RESERVOIR 1
|
|
#define EN_TANK 2
|
|
|
|
#define EN_CVPIPE 0 /* Link types */
|
|
#define EN_PIPE 1
|
|
#define EN_PUMP 2
|
|
#define EN_PRV 3
|
|
#define EN_PSV 4
|
|
#define EN_PBV 5
|
|
#define EN_FCV 6
|
|
#define EN_TCV 7
|
|
#define EN_GPV 8
|
|
|
|
#define EN_NONE 0 /* Quality analysis types */
|
|
#define EN_CHEM 1
|
|
#define EN_AGE 2
|
|
#define EN_TRACE 3
|
|
|
|
#define EN_CONCEN 0 /* Source quality types */
|
|
#define EN_MASS 1
|
|
#define EN_SETPOINT 2
|
|
#define EN_FLOWPACED 3
|
|
|
|
#define EN_CFS 0 /* Flow units types */
|
|
#define EN_GPM 1
|
|
#define EN_MGD 2
|
|
#define EN_IMGD 3
|
|
#define EN_AFD 4
|
|
#define EN_LPS 5
|
|
#define EN_LPM 6
|
|
#define EN_MLD 7
|
|
#define EN_CMH 8
|
|
#define EN_CMD 9
|
|
|
|
#define EN_TRIALS 0 /* Misc. options */
|
|
#define EN_ACCURACY 1
|
|
#define EN_TOLERANCE 2
|
|
#define EN_EMITEXPON 3
|
|
#define EN_DEMANDMULT 4
|
|
|
|
#define EN_LOWLEVEL 0 /* Control types */
|
|
#define EN_HILEVEL 1
|
|
#define EN_TIMER 2
|
|
#define EN_TIMEOFDAY 3
|
|
|
|
#define EN_AVERAGE 1 /* Time statistic types. */
|
|
#define EN_MINIMUM 2
|
|
#define EN_MAXIMUM 3
|
|
#define EN_RANGE 4
|
|
|
|
#define EN_MIX1 0 /* Tank mixing models */
|
|
#define EN_MIX2 1
|
|
#define EN_FIFO 2
|
|
#define EN_LIFO 3
|
|
|
|
#define EN_NOSAVE 0 /* Save-results-to-file flag */
|
|
#define EN_SAVE 1
|
|
#define EN_INITFLOW 10 /* Re-initialize flow flag */
|
|
|
|
|
|
|
|
// --- define WINDOWS
|
|
|
|
#undef WINDOWS
|
|
#ifdef _WIN32
|
|
#define WINDOWS
|
|
#endif
|
|
#ifdef __WIN32__
|
|
#define WINDOWS
|
|
#endif
|
|
|
|
// --- define DLLEXPORT
|
|
|
|
#ifndef DLLEXPORT
|
|
#ifdef DLL
|
|
#if defined(CYGWIN)
|
|
#define DLLEXPORT __stdcall
|
|
#elif defined(WINDOWS)
|
|
#ifdef __cplusplus
|
|
#define DLLEXPORT extern "C" __declspec(dllexport)
|
|
#else
|
|
#define DLLEXPORT __declspec(dllexport)
|
|
#endif
|
|
#else
|
|
#ifdef __cplusplus
|
|
#define DLLEXPORT extern "C"
|
|
#else
|
|
#define DLLEXPORT
|
|
#endif
|
|
#endif
|
|
#else
|
|
#define DLLEXPORT
|
|
#endif
|
|
#endif
|
|
|
|
// --- declare the EPANET toolkit functions
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
int DLLEXPORT ENepanet(char *, char *, char *, void (*) (char *));
|
|
int DLLEXPORT ENopen(char *, char *, char *);
|
|
int DLLEXPORT ENsaveinpfile(char *);
|
|
int DLLEXPORT ENclose(void);
|
|
|
|
int DLLEXPORT ENsolveH(void);
|
|
int DLLEXPORT ENsaveH(void);
|
|
int DLLEXPORT ENopenH(void);
|
|
int DLLEXPORT ENinitH(int);
|
|
int DLLEXPORT ENrunH(long *);
|
|
int DLLEXPORT ENnextH(long *);
|
|
int DLLEXPORT ENcloseH(void);
|
|
int DLLEXPORT ENsavehydfile(char *);
|
|
int DLLEXPORT ENusehydfile(char *);
|
|
|
|
int DLLEXPORT ENsolveQ(void);
|
|
int DLLEXPORT ENopenQ(void);
|
|
int DLLEXPORT ENinitQ(int);
|
|
int DLLEXPORT ENrunQ(long *);
|
|
int DLLEXPORT ENnextQ(long *);
|
|
int DLLEXPORT ENstepQ(long *);
|
|
int DLLEXPORT ENcloseQ(void);
|
|
|
|
int DLLEXPORT ENwriteline(char *);
|
|
int DLLEXPORT ENreport(void);
|
|
int DLLEXPORT ENresetreport(void);
|
|
int DLLEXPORT ENsetreport(char *);
|
|
|
|
int DLLEXPORT ENgetcontrol(int, int *, int *, float *,
|
|
int *, float *);
|
|
int DLLEXPORT ENgetcount(int, int *);
|
|
int DLLEXPORT ENgetoption(int, float *);
|
|
int DLLEXPORT ENgettimeparam(int, long *);
|
|
int DLLEXPORT ENgetflowunits(int *);
|
|
int DLLEXPORT ENgetpatternindex(char *, int *);
|
|
int DLLEXPORT ENgetpatternid(int, char *);
|
|
int DLLEXPORT ENgetpatternlen(int, int *);
|
|
int DLLEXPORT ENgetpatternvalue(int, int, float *);
|
|
int DLLEXPORT ENgetqualtype(int *, int *);
|
|
int DLLEXPORT ENgeterror(int, char *, int);
|
|
|
|
int DLLEXPORT ENgetnodeindex(char *, int *);
|
|
int DLLEXPORT ENgetnodeid(int, char *);
|
|
int DLLEXPORT ENgetnodetype(int, int *);
|
|
int DLLEXPORT ENgetnodevalue(int, int, float *);
|
|
|
|
int DLLEXPORT ENgetnumdemands(int, int *);
|
|
int DLLEXPORT ENgetbasedemand(int, int, float *);
|
|
int DLLEXPORT ENgetdemandpattern(int, int, int *);
|
|
|
|
int DLLEXPORT ENgetlinkindex(char *, int *);
|
|
int DLLEXPORT ENgetlinkid(int, char *);
|
|
int DLLEXPORT ENgetlinktype(int, int *);
|
|
int DLLEXPORT ENgetlinknodes(int, int *, int *);
|
|
int DLLEXPORT ENgetlinkvalue(int, int, float *);
|
|
|
|
int DLLEXPORT ENgetversion(int *);
|
|
|
|
int DLLEXPORT ENsetcontrol(int, int, int, float, int, float);
|
|
int DLLEXPORT ENsetnodevalue(int, int, float);
|
|
int DLLEXPORT ENsetlinkvalue(int, int, float);
|
|
int DLLEXPORT ENaddpattern(char *);
|
|
int DLLEXPORT ENsetpattern(int, float *, int);
|
|
int DLLEXPORT ENsetpatternvalue(int, int, float);
|
|
int DLLEXPORT ENsettimeparam(int, long);
|
|
int DLLEXPORT ENsetoption(int, float);
|
|
int DLLEXPORT ENsetstatusreport(int);
|
|
int DLLEXPORT ENsetqualtype(int, char *, char *, char *);
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif
|