Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
add new epanet.m version of EMC.
  • Loading branch information
Mariosmsk committed Jul 12, 2016
1 parent d861f3c commit cc53426
Show file tree
Hide file tree
Showing 52 changed files with 13,266 additions and 3,934 deletions.
Binary file added 32bit/epanet2.dll
Binary file not shown.
Binary file added 32bit/epanet2.exe
Binary file not shown.
291 changes: 291 additions & 0 deletions 32bit/epanet2.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
/*
*******************************************************************
EPANET2.H - Prototypes for EPANET Functions Exported to DLL Toolkit
VERSION: 2.00
DATE: 5/8/00
10/25/00
3/1/01
8/15/07 (2.00.11)
2/14/08 (2.00.12)
AUTHORS: L. Rossman - US EPA - NRMRL
OpenWaterAnalytics members: see git stats for contributors
*******************************************************************
*/

#ifndef EPANET2_H
#define EPANET2_H

// the toolkit can be compiled with support for double-precision as well.
// just make sure that you use the correct #define in your client code.
#ifndef EN_API_FLOAT_TYPE
#define EN_API_FLOAT_TYPE float
#endif

// --- define WINDOWS
#undef WINDOWS
#ifdef _WIN32
#define WINDOWS
#endif
#ifdef __WIN32__
#define WINDOWS
#endif

// --- define DLLEXPORT
#ifndef DLLEXPORT
#ifdef WINDOWS
#ifdef __cplusplus
#define DLLEXPORT extern "C" __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllexport) __stdcall
#endif // __cplusplus
#elif defined(CYGWIN)
#define DLLEXPORT __stdcall
#elif defined(__APPLE__)
#ifdef __cplusplus
#define DLLEXPORT
#else
#define DLLEXPORT
#endif
#else
#define DLLEXPORT
#endif
#endif


// --- 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
#define EN_MAXVOLUME 25

#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
#define EN_LINKPATTERN 15

#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_HTIME 11
#define EN_QTIME 12
#define EN_HALTFLAG 13
#define EN_NEXTEVENT 14

#define EN_ITERATIONS 0
#define EN_RELATIVEERROR 1

#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 /* See LinkType in TYPES.H */
#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 /* See QualType in TYPES.H */
#define EN_AGE 2
#define EN_TRACE 3

#define EN_CONCEN 0 /* Source quality types. */
#define EN_MASS 1 /* See SourceType in TYPES.H. */
#define EN_SETPOINT 2
#define EN_FLOWPACED 3

#define EN_CFS 0 /* Flow units types. */
#define EN_GPM 1 /* See FlowUnitsType */
#define EN_MGD 2 /* in TYPES.H. */
#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 /* See ControlType */
#define EN_TIMER 2 /* in TYPES.H. */
#define EN_TIMEOFDAY 3

#define EN_AVERAGE 1 /* Time statistic types. */
#define EN_MINIMUM 2 /* See TstatType in TYPES.H */
#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 flows flag */

#define EN_CONST_HP 0 /* constant horsepower */
#define EN_POWER_FUNC 1 /* power function */
#define EN_CUSTOM 2 /* user-defined custom curve */

// --- Declare the EPANET toolkit functions
#if defined(__cplusplus)
extern "C" {
#endif
int DLLEXPORT ENepanet(char *inpFile, char *rptFile, char *binOutFile, void (*callback) (char *));

int DLLEXPORT ENopen(char *inpFile, char *rptFile, char *binOutFile);
int DLLEXPORT ENsaveinpfile(char *filename);
int DLLEXPORT ENclose();

int DLLEXPORT ENsolveH();
int DLLEXPORT ENsaveH();
int DLLEXPORT ENopenH();
int DLLEXPORT ENinitH(int initFlag);
int DLLEXPORT ENrunH(long *currentTime);
int DLLEXPORT ENnextH(long *tStep);
int DLLEXPORT ENcloseH();
int DLLEXPORT ENsavehydfile(char *filename);
int DLLEXPORT ENusehydfile(char *filename);

int DLLEXPORT ENsolveQ();
int DLLEXPORT ENopenQ();
int DLLEXPORT ENinitQ(int saveFlag);
int DLLEXPORT ENrunQ(long *currentTime);
int DLLEXPORT ENnextQ(long *tStep);
int DLLEXPORT ENstepQ(long *timeLeft);
int DLLEXPORT ENcloseQ();

int DLLEXPORT ENwriteline(char *line);
int DLLEXPORT ENreport();
int DLLEXPORT ENresetreport();
int DLLEXPORT ENsetreport(char *reportFormat);

int DLLEXPORT ENgetcontrol(int controlIndex, int *controlType, int *linkIdx, EN_API_FLOAT_TYPE *setting, int *nodeIdx, EN_API_FLOAT_TYPE *level);
int DLLEXPORT ENgetcount(int code, int *count);
int DLLEXPORT ENgetoption(int code, EN_API_FLOAT_TYPE *value);
int DLLEXPORT ENgettimeparam(int code, long *value);
int DLLEXPORT ENgetflowunits(int *code);
int DLLEXPORT ENgetpatternindex(char *id, int *index);
int DLLEXPORT ENgetpatternid(int index, char *id);
int DLLEXPORT ENgetpatternlen(int index, int *len);
int DLLEXPORT ENgetpatternvalue(int index, int period, EN_API_FLOAT_TYPE *value);
int DLLEXPORT ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value);
int DLLEXPORT ENgetqualtype(int *qualcode, int *tracenode);
int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen);
int DLLEXPORT ENgetstatistic(int code, EN_API_FLOAT_TYPE* value);

int DLLEXPORT ENgetnodeindex(char *id, int *index);
int DLLEXPORT ENgetnodeid(int index, char *id);
int DLLEXPORT ENgetnodetype(int index, int *code);
int DLLEXPORT ENgetnodevalue(int index, int code, EN_API_FLOAT_TYPE *value);
int DLLEXPORT ENgetcoord(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
int DLLEXPORT ENsetcoord(int index, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);

int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands);
int DLLEXPORT ENgetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE *baseDemand);
int DLLEXPORT ENgetdemandpattern(int nodeIndex, int demandIdx, int *pattIdx);

int DLLEXPORT ENgetlinkindex(char *id, int *index);
int DLLEXPORT ENgetlinkid(int index, char *id);
int DLLEXPORT ENgetlinktype(int index, int *code);
int DLLEXPORT ENgetlinknodes(int index, int *node1, int *node2);
int DLLEXPORT ENgetlinkvalue(int index, int code, EN_API_FLOAT_TYPE *value);

int DLLEXPORT ENgetcurve(int curveIndex, char* id, int *nValues, EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues);
int DLLEXPORT ENgetheadcurveindex(int index, int *curveindex);
int DLLEXPORT ENgetpumptype(int index, int *type);

int DLLEXPORT ENgetversion(int *version);

int DLLEXPORT ENsetcontrol(int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level);
int DLLEXPORT ENsetnodevalue(int index, int code, EN_API_FLOAT_TYPE v);
int DLLEXPORT ENsetlinkvalue(int index, int code, EN_API_FLOAT_TYPE v);
int DLLEXPORT ENaddpattern(char *id);
int DLLEXPORT ENsetpattern(int index, EN_API_FLOAT_TYPE *f, int len);
int DLLEXPORT ENsetpatternvalue(int index, int period, EN_API_FLOAT_TYPE value);
int DLLEXPORT ENsettimeparam(int code, long value);
int DLLEXPORT ENsetoption(int code, EN_API_FLOAT_TYPE v);
int DLLEXPORT ENsetstatusreport(int code);
int DLLEXPORT ENsetqualtype(int qualcode, char *chemname, char *chemunits, char *tracenode);
int DLLEXPORT ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode);
int DLLEXPORT ENsetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand);

int DLLEXPORT ENgetcurveindex(char *id, int *index);
int DLLEXPORT ENgetcurveid(int index, char *id);
int DLLEXPORT ENgetcurvelen(int index, int *len);
int DLLEXPORT ENgetcurvevalue(int index, int pnt, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
int DLLEXPORT ENsetcurvevalue(int index, int pnt, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y, int len);
int DLLEXPORT ENaddcurve(char *id);

#if defined(__cplusplus)
}
#endif

#endif //EPANET2_H
Binary file added 32bit/epanet2d.exe
Binary file not shown.
Binary file added 32bit/epanetmsx.dll
Binary file not shown.
Binary file added 32bit/epanetmsx.exe
Binary file not shown.
103 changes: 103 additions & 0 deletions 32bit/epanetmsx.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
/******************************************************************************
** MODULE: EPANETMSX.H
** PROJECT: EPANET-MSX
** DESCRIPTION: C/C++ header file for EPANET Multi-Species Extension Toolkit
** COPYRIGHT: Copyright (C) 2007 Feng Shang, Lewis Rossman, and James Uber.
** All Rights Reserved. See license information in LICENSE.TXT.
** AUTHORS: L. Rossman, US EPA - NRMRL
** F. Shang, University of Cincinnati
** J. Uber, University of Cincinnati
** VERSION: 1.1
** LAST UPDATE: 11/01/10
*******************************************************************************/

#ifndef EPANETMSX_H
#define EPANETMSX_H

// --- define WINDOWS

#undef WINDOWS
#ifdef _WIN32
#define WINDOWS
#endif
#ifdef __WIN32__
#define WINDOWS
#endif

// --- define DLLEXPORT

#ifndef DLLEXPORT // ttaxon - 9/7/10
#ifdef WINDOWS
#ifdef __cplusplus
#define DLLEXPORT extern "C" __declspec(dllexport) __stdcall
#else
#define DLLEXPORT __declspec(dllexport) __stdcall
#endif
#else
#ifdef __cplusplus
#define DLLEXPORT extern "C"
#else
#define DLLEXPORT
#endif
#endif
#endif

// --- define MSX constants

#define MSX_NODE 0
#define MSX_LINK 1
#define MSX_TANK 2
#define MSX_SPECIES 3
#define MSX_TERM 4
#define MSX_PARAMETER 5
#define MSX_CONSTANT 6
#define MSX_PATTERN 7

#define MSX_BULK 0
#define MSX_WALL 1

#define MSX_NOSOURCE -1
#define MSX_CONCEN 0
#define MSX_MASS 1
#define MSX_SETPOINT 2
#define MSX_FLOWPACED 3

// --- declare MSX functions

int DLLEXPORT MSXopen(char *fname);
int DLLEXPORT MSXsolveH(void);
int DLLEXPORT MSXusehydfile(char *fname);
int DLLEXPORT MSXsolveQ(void);
int DLLEXPORT MSXinit(int saveFlag);
int DLLEXPORT MSXstep(long *t, long *tleft);
int DLLEXPORT MSXsaveoutfile(char *fname);
int DLLEXPORT MSXsavemsxfile(char *fname);
int DLLEXPORT MSXreport(void);
int DLLEXPORT MSXclose(void);

int DLLEXPORT MSXgetindex(int type, char *id, int *index);
int DLLEXPORT MSXgetIDlen(int type, int index, int *len);
int DLLEXPORT MSXgetID(int type, int index, char *id, int len);
int DLLEXPORT MSXgetcount(int type, int *count);
int DLLEXPORT MSXgetspecies(int index, int *type, char *units, double *aTol,
double *rTol);
int DLLEXPORT MSXgetconstant(int index, double *value);
int DLLEXPORT MSXgetparameter(int type, int index, int param, double *value);
int DLLEXPORT MSXgetsource(int node, int species, int *type, double *level,
int *pat);
int DLLEXPORT MSXgetpatternlen(int pat, int *len);
int DLLEXPORT MSXgetpatternvalue(int pat, int period, double *value);
int DLLEXPORT MSXgetinitqual(int type, int index, int species, double *value);
int DLLEXPORT MSXgetqual(int type, int index, int species, double *value);
int DLLEXPORT MSXgeterror(int code, char *msg, int len);

int DLLEXPORT MSXsetconstant(int index, double value);
int DLLEXPORT MSXsetparameter(int type, int index, int param, double value);
int DLLEXPORT MSXsetinitqual(int type, int index, int species, double value);
int DLLEXPORT MSXsetsource(int node, int species, int type, double level,
int pat);
int DLLEXPORT MSXsetpatternvalue(int pat, int period, double value);
int DLLEXPORT MSXsetpattern(int pat, double mult[], int len);
int DLLEXPORT MSXaddpattern(char *id);

#endif
Binary file added 64bit/epanet2.dll
Binary file not shown.
Binary file added 64bit/epanet2.exe
Binary file not shown.
Loading

0 comments on commit cc53426

Please sign in to comment.