From 719114cb2e4b7ef24a0efda11f51006f2bf3b6ca Mon Sep 17 00:00:00 2001 From: JinduanChen Date: Mon, 28 Jan 2013 15:14:10 -0500 Subject: [PATCH] Compile LemonTiger as a Win32 DLL. Use "LemonTiger.h" to access its functions. Added one new function - ENrunnextHQ(). --- .gitignore | 1 + Debug/LemonTigerJ.dll | Bin 0 -> 282112 bytes Debug/LemonTigerJ.lastbuildstate | 2 + Debug/LemonTigerJ.lib | Bin 0 -> 13646 bytes Debug/LemonTigerJ.log | 27 ++++ LemonTigerJ.v11.suo | Bin 65536 -> 72704 bytes LemonTigerJ.vcxproj | 3 +- include/epanet2.h | 251 ------------------------------- src/lemontiger.c | 221 ++++++++++++++++----------- src/lemontiger.h | 236 ++++++++++++++++++++++++++++- src/testLT.c | 8 +- src/toolkit.h | 38 ++--- 12 files changed, 419 insertions(+), 368 deletions(-) create mode 100644 Debug/LemonTigerJ.dll create mode 100644 Debug/LemonTigerJ.lastbuildstate create mode 100644 Debug/LemonTigerJ.lib create mode 100644 Debug/LemonTigerJ.log delete mode 100755 include/epanet2.h diff --git a/.gitignore b/.gitignore index d70f877..2167a2a 100644 --- a/.gitignore +++ b/.gitignore @@ -84,6 +84,7 @@ xcuserdata !xcschemes # Visual Studio 2012 +*.suo *.sdf *.filters *.user diff --git a/Debug/LemonTigerJ.dll b/Debug/LemonTigerJ.dll new file mode 100644 index 0000000000000000000000000000000000000000..e15dedf44d1b4441c01cb92089d9759419140ddd GIT binary patch literal 282112 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

M)i^{QN3E!qVFa;flYcsyo8UQ%TDhB|4JZQ@J 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�>9WXz@C34;kKNR{l1?dKM&;lgZ62E^ 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

Q?jVIQYay;P3XDorVbZBhvVa*)ct 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 O0TR6)|6BSxfH*aU0c?`hRzX}dFBxX zjSrn(Qd!l&s18gjvyHGNg_X!S#`nCfCdevjh&CSM4YZv!Qk!Js*udR`^h#GWo~4XF zR&kZDONUv3HTC7mGDWaql+Of9V$3EsJJGekx(SBF&YwOvvfknwpFI)p4?*dQ(kYc4 zV@lbfbV`~W0D#?v2oag&{3{-ppQ+zRVFW+YC%-4JjC>NRsMfx9OT+#7@ zZHjxPL^)E7A4ygu*pS$ziCl=Xk#?eUlF&?6(_PtQN5+_ZiI|0W8_hOhdwO!A#My}}-6(6fQhdq_WKbvwA|7?G=^iWF9+V}mJ+HYEVsO)=W z$H`NrTrrhm`d!A~S?~w3_iNb$VbZ1Si+Xx4_=3n6JEe*mQ+Z-Tam7oBoDijp+2x{s z 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 "C:\Users\owner\Documents\GitHub\epanet\LemonTigerJ.vcxproj" on node 2 (Build target(s)). + 1>ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I.\include /Zi /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _WINDLL /D _CRT_SECURE_NO_WARNINGS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TC /analyze- /errorReport:prompt src\testLT.c + testLT.c + Link: + C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\owner\Documents\GitHub\epanet\Debug\LemonTigerJ.dll" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\Users\owner\Documents\GitHub\epanet\Debug\LemonTigerJ.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\owner\Documents\GitHub\epanet\Debug\LemonTigerJ.lib" /MACHINE:X86 /DLL Debug\epanet.obj + Debug\hash.obj + Debug\hydraul.obj + Debug\inpfile.obj + Debug\input1.obj + Debug\input2.obj + Debug\input3.obj + Debug\lemontiger.obj + Debug\mempool.obj + Debug\output.obj + Debug\quality.obj + Debug\report.obj + Debug\rules.obj + Debug\smatrix.obj + Debug\testLT.obj + LemonTigerJ.vcxproj -> C:\Users\owner\Documents\GitHub\epanet\Debug\LemonTigerJ.dll + 1>Done Building Project "C:\Users\owner\Documents\GitHub\epanet\LemonTigerJ.vcxproj" (Build target(s)). + +Build succeeded. + +Time Elapsed 00:00:01.13 diff --git a/LemonTigerJ.v11.suo b/LemonTigerJ.v11.suo index 4f787f31457c1af90b9f6147dfdb318166b27f91..d4ca826e770732d11d05cbf7ba46270d963711ba 100644 GIT binary patch delta 7276 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 delta 6872 zcmeHL3viUx75?vLHzb=~vUxuUuz?U0Okj7DK$OG;@&E(!rZ6#rNeGxol4aRYUYa%H zV=9hek9O5k3ei#9u~k?)A&RmZ7_k+Nk0NbD>)YDWiZ-Z0G5yZJ`)B_=)Uo4C>$G?0 zn|uCy&wZVH?sv~!*I}*8rESmhR7MD6tVxo>B}obaz8n}BKqiHFt$kkM)@%qr_vp!O zXZufzG-}bbYBYjA(VV1ijn&BNcd{_svui3q1yS4@bxpc8wZbkQ|=30_eYEuI8R^;PV zMpYS2w$M=R0rxP@BgEHn!CIXFUjAXADVCFL%Bv;(^Vcc6k5?}1Fq4O!a#EbKJoY9C|ah+#|X zix6G{SnXxxuK=$CuK~XUP64k2r-9!Ce*oSAdVwD$G-)N)B{Xb)R2gf7IrNH-;C zQD6KbonSJQznlq+4NP?70qh2oL7IWDnmYha9a)-=a?NNCPRAj>+|^+dp5kbc&vj5Ov~*L1BZYbk(mbJh5#P$Ep-fsR)k$`#T53Y>lrp4R={kHl zBr|AXon)1=APp_EjZ&5)mu;4srFv;CT4bQL9b{gQUVjM5ftvMFrd$)~jqWMD)N?^E z4D>=_9$oBB@;p9PXg&4_VIq4`7`69mJqwJYoP2MtH_eNF_7>yq-Pt=ns5zbc9zLj24i zRT~)00x2CoGuSYwaRt7a-9!LP+zoVb@^gk9NMiwI8@zpK2JyYLx>!ddxya*+624Af zv?vzt(o(~8EKRvT*M`pq9&84YN?J0XTKc(~y2qgg0V=(2$`Z*L1Fg z!(B;QyrJ5;uG!J(U0m?EI9TzXpoij<#Ue_rxob=gPG+uTq2~|mACxy9j3e#x3xnTD z-eBD`Uanh32@VtXK*xQI5A-3efvel3X>jl@fFunr!LpzqWlY-hg7&)lD zU_`A|ReL4PUKyONb!7~dHmo9#Et>BAfjc4C=L}UF3ms^gozFEtoKzX z51XkC9uVxYXjqRqi1&lF3rEzd?Kq!nWqZ`rMh_b$2SgX_XC7^=t!FFK7i*J6yWdCV zn#TCwL0}Bnx2bO5pa*8I|G77DonELmFi+LpbU4R--dENSQBZqg7A(;SkFjISA5(6F zDdsw<1Tk)vv_jehvgVhFAYH+%(ay{P;d#|4YQ@qKmjFd)Ptq}YM|#W7LUzA>=>?Hgl<`4C^E z!6{yW{%0v{=3elC$$j73M(2@d8_(5+RNXwK>=a+^yY1oLo&^>mrjl5`QDH7`+loho zw`ZkE@ZNayD{;5-(ce>bs~9|ZaKeboWonp$6o+=#tR7IGWj@wc`&f;d1* zJoZiPj4SuG0}k_s!G}@wII0KfcZJ4tuRV0q)>ooKi%v4b%TZ+Rq^@~ zI1>Mx5H6ABcoVIe9!|YSGU(C6d&T`^J>IC@TWf)S}pzRCGw>C8KfkB`bcu8l}}jZB^4-D$U`vs zP)z;=rJWv6ubmp8eNU#tkO^VR3TgM#`BZ#*Ihmf#^7>A{rAeP{v)#b89LR90FGdtN zXTK=D+=8F-f~WMS^4-0w#2C+GdQlz4*ThU5f?O$2eyD3HRTD$5)3NZSP&v+B94V4H z{Jl1kV@~CVzXZNgbG6*-45?fy#YMo+|F6~^8C2JBATan6z%)#lhWYCQai>wa=zcx1aB#spmM9~QP9X-wu3u(Y!F@qpFfdBJ$bK-mo4|eGkGeieYP!pagTk*`u zz)5Px*LsN`D^5Hw@Cf=hhdY6`oH#eh!%Z_o{HEay(D5g7z3ZZLmCIGcnuGlg65mzc z51nJwS7DAidZ2-2>%r1~N?3&O_Kj1R8 zjSQaDcTwT6i^MwQnz}BVC$sMqPL4D930=1*OFA8a%UY!ke(Q$u#Wf}!D&>E0OzTlxK@5DBJv#kCI7i& diff --git a/LemonTigerJ.vcxproj b/LemonTigerJ.vcxproj index cab68ab..7ffa87b 100644 --- a/LemonTigerJ.vcxproj +++ b/LemonTigerJ.vcxproj @@ -11,7 +11,6 @@ - @@ -45,7 +44,7 @@ - Application + DynamicLibrary true v110 diff --git a/include/epanet2.h b/include/epanet2.h deleted file mode 100755 index d1d37f1..0000000 --- a/include/epanet2.h +++ /dev/null @@ -1,251 +0,0 @@ -/* -** 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 ENgetcurve(int curveIndex, int *nValues, float **xValues, float **yValues); - - 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 diff --git a/src/lemontiger.c b/src/lemontiger.c index eff0c04..7d6d447 100644 --- a/src/lemontiger.c +++ b/src/lemontiger.c @@ -2,13 +2,12 @@ #include "vars.h" #include "funcs.h" #include "toolkit.h" -#include "lemontiger.h" extern char OutOfMemory; extern int Haltflag; -int ENopeninitHQ() { +int DLLEXPORT ENopeninitHQ() { int errcode = 0; if (Hstep % Qstep) { @@ -36,102 +35,67 @@ int ENopeninitHQ() { return errcode; } -long timestepLT(void) -/* -**---------------------------------------------------------------- -** Input: none -** Output: returns time step until next change in hydraulics -** Purpose: computes time step to advance hydraulic simulation, but don't update tank levels -** Let nextqual() to do the job. -**---------------------------------------------------------------- -*/ -{ - long n,t,tstep; +long timestepLT(); +/* computes the length of the time step to next hydraulic simulation, but don't + update tank volumne and tank levels. During a sync HQ simulation, + nextqual() will update the tank vols */ - /* Normal time step is hydraulic time step */ - tstep = Hstep; +int nexthydLT(long *tstep); +/* finds length of next time step but don't save + results to hydraulics file. ignore reporting functions. */ - /* Revise time step based on time until next demand period */ - n = ((Htime+Pstart)/Pstep) + 1; /* Next pattern period */ - t = n*Pstep - Htime; /* Time till next period */ - if (t > 0 && t < tstep) tstep = t; +void updateTanklevels(); +//Prior to running hydraulic simulation, update the tank levels. - /* Revise time step based on time until next reporting period */ - t = Rtime - Htime; - if (t > 0 && t < tstep) tstep = t; +int DLLEXPORT ENrunnextHQ(long* pstime, /*Simulation time pointer*/ + long* ptstep /*next time step*/ ) { +/* The lemonTiger equivalent of ENnextQ, hydraulic solver is called on-demand*/ + long hydtime; /* Hydraulic solution time */ + long hydstep; /* Hydraulic time step */ + int errcode = 0; - /* Revise time step based on smallest time to fill or drain a tank */ - tanktimestep(&tstep); - - /* Revise time step based on smallest time to activate a control */ - controltimestep(&tstep); - - /* Evaluate rule-based controls (which will also update tank levels) */ - if (Nrules > 0) ruletimestep(&tstep); - - return(tstep); -} - -int nexthydLT(long *tstep) -/* -**-------------------------------------------------------------- -** Input: none -** Output: tstep = pointer to time step (in seconds) -** Returns: error code -** Purpose: finds length of next time step & updates tank -** levels and rule-based contol actions. don't save -** results to hydraulics file. don't consider Report time. -**-------------------------------------------------------------- -*/ -{ - long hydstep; /* Actual time step */ - int errcode = 0; /* Error code */ - - if (Haltflag) Htime = Dur; - - /* Compute next time step & update tank levels */ - *tstep = 0; - hydstep = 0; - if (Htime < Dur) hydstep = timestepLT(); - - /* Compute pumping energy */ - if (Dur == 0) addenergy(0); - else if (Htime < Dur) addenergy(hydstep); - - /* Update current time. */ - if (Htime < Dur) /* More time remains */ + /* if needed, push forward hydraulic simulation, similar to runqual() */ + if (Qtime == Htime) { - Htime += hydstep; + if ( (errcode = runhyd(&hydtime)) || + (errcode = nexthydLT(&hydstep)) + ) return errcode; + /* If simulating WQ: */ + if (Qualflag != NONE && Qtime < Dur) { + + /* Compute reaction rate coeffs. */ + if (Reactflag && Qualflag != AGE) ratecoeffs(); + + /* Initialize pipe segments (at time 0) or */ + /* else re-orient segments if flow reverses.*/ + if (Qtime == 0) initsegs(); + else reorientsegs(); + } + Htime = hydtime + hydstep; } - else - { - Htime++; /* Force completion of analysis */ - } - *tstep = hydstep; + *pstime = Htime; + hydstep = Htime - Qtime; + + /* Perform water quality routing over this time step */ + if (Qualflag != NONE && hydstep > 0) transport(hydstep); + + updateTanklevels(); + /* Update current time */ + if (OutOfMemory) errcode = 101; + if (!errcode) *ptstep = hydstep; + Qtime += hydstep; + + /* Save final output if no more time steps */ + if (!errcode && Saveflag && *ptstep == 0) errcode = savefinaloutput(); return(errcode); + } - -void updateTanklevels() { - int i,n; +int DLLEXPORT ENrunstepHQ(long* pstime /* Simulation time pointer */ + ,long* ptleft /* Time left in the simulation*/) { - for (i=1; i<=Ntanks; i++) - { - - /* Skip reservoirs */ - if (Tank[i].A == 0.0) continue; +/* The LemonTiger equivalence of ENstepQ, hydraulic solver is called on-demand */ - n = Tank[i].Node; - /* Check if tank full/empty within next second */ - if (Tank[i].V + D[n] >= Tank[i].Vmax) Tank[i].V = Tank[i].Vmax; - if (Tank[i].V - D[n] <= Tank[i].Vmin) Tank[i].V = Tank[i].Vmin; - - H[n] = tankgrade(i,Tank[i].V); - } -} - -int ENrunstepHQ(long* pstime /* Simulation time pointer */ - , long* ptleft /* Time left in the simulation*/) { long hydtime; /* Hydraulic solution time */ long hydstep; /* Hydraulic time step */ int errcode = 0; @@ -224,7 +188,8 @@ int ENrunstepHQ(long* pstime /* Simulation time pointer */ return(errcode); } -int ENcloseHQ() { + +int DLLEXPORT ENcloseHQ() { int errcode = 0; if ( (errcode = ENcloseQ()) || (errcode = ENcloseH()) ) return errcode; @@ -232,5 +197,85 @@ int ENcloseHQ() { } + + +long timestepLT(void) { +/* computes time step to advance hydraulic simulation, but don't + update tank levels. Instead, let nextqual() do the job. */ + long n,t,tstep; + + /* Normal time step is hydraulic time step */ + tstep = Hstep; + + /* Revise time step based on time until next demand period */ + n = ((Htime+Pstart)/Pstep) + 1; /* Next pattern period */ + t = n*Pstep - Htime; /* Time till next period */ + if (t > 0 && t < tstep) tstep = t; + + /* Revise time step based on time until next reporting period */ + t = Rtime - Htime; + if (t > 0 && t < tstep) tstep = t; + + /* Revise time step based on smallest time to fill or drain a tank */ + tanktimestep(&tstep); + + /* Revise time step based on smallest time to activate a control */ + controltimestep(&tstep); + + /* Evaluate rule-based controls (which will also update tank levels) */ + if (Nrules > 0) ruletimestep(&tstep); + + return(tstep); +} + + +int nexthydLT(long *tstep) { +/* finds length of next time step but don't updates tank volumnes and tank + levels and rule-based contol actions. don't save + results to hydraulics file. don't consider Report time. */ + long hydstep; /* Actual time step */ + int errcode = 0; /* Error code */ + + if (Haltflag) Htime = Dur; + + /* Compute next time step & update tank levels */ + *tstep = 0; + hydstep = 0; + if (Htime < Dur) hydstep = timestepLT(); + + /* Compute pumping energy */ + if (Dur == 0) addenergy(0); + else if (Htime < Dur) addenergy(hydstep); + + /* Update current time. */ + if (Htime < Dur) /* More time remains */ + { + Htime += hydstep; + } + else + { + Htime++; /* Force completion of analysis */ + } + *tstep = hydstep; + return(errcode); +} + + +void updateTanklevels() { //Prior to doing hydraulic simulation, update the tank levels + int i,n; + for (i=1; i<=Ntanks; i++) { + /* Skip reservoirs */ + if (Tank[i].A == 0.0) continue; + + n = Tank[i].Node; + /* Check if tank full/empty within next second */ + if (Tank[i].V + D[n] >= Tank[i].Vmax) Tank[i].V = Tank[i].Vmax; + if (Tank[i].V - D[n] <= Tank[i].Vmin) Tank[i].V = Tank[i].Vmin; + + H[n] = tankgrade(i,Tank[i].V); + } +} + + \ No newline at end of file diff --git a/src/lemontiger.h b/src/lemontiger.h index 885f429..c4d8787 100644 --- a/src/lemontiger.h +++ b/src/lemontiger.h @@ -1,11 +1,239 @@ #ifndef LEMONTIGER_H #define LEMONTIGER_H -int ENopeninitHQ(); +/*The header file to be included for USING Epanet LemonTiger DLL on WINDOWS platforms, +all original Epanet functions remain intact, and the new LT_functions are added. */ -int ENrunstepHQ(long*, long*); +/*Note that this file is not used by the functions in the toolkit itself. +Refer to toolkit.h for the internally used function declarations. */ + +#define DLLIMPORT __declspec(dllimport) + +// --- 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 */ + +// --- declare the EPANET toolkit functions + +#ifdef __cplusplus +extern "C" { +#endif + + int DLLIMPORT ENepanet(char *, char *, char *, void (*) (char *)); + int DLLIMPORT ENopen(char *, char *, char *); + int DLLIMPORT ENsaveinpfile(char *); + int DLLIMPORT ENclose(void); + + int DLLIMPORT ENsolveH(void); + int DLLIMPORT ENsaveH(void); + int DLLIMPORT ENopenH(void); + int DLLIMPORT ENinitH(int); + int DLLIMPORT ENrunH(long *); + int DLLIMPORT ENnextH(long *); + int DLLIMPORT ENcloseH(void); + int DLLIMPORT ENsavehydfile(char *); + int DLLIMPORT ENusehydfile(char *); + + int DLLIMPORT ENsolveQ(void); + int DLLIMPORT ENopenQ(void); + int DLLIMPORT ENinitQ(int); + int DLLIMPORT ENrunQ(long *); + int DLLIMPORT ENnextQ(long *); + int DLLIMPORT ENstepQ(long *); + int DLLIMPORT ENcloseQ(void); + + int DLLIMPORT ENwriteline(char *); + int DLLIMPORT ENreport(void); + int DLLIMPORT ENresetreport(void); + int DLLIMPORT ENsetreport(char *); + + int DLLIMPORT ENgetcontrol(int, int *, int *, float *, + int *, float *); + int DLLIMPORT ENgetcount(int, int *); + int DLLIMPORT ENgetoption(int, float *); + int DLLIMPORT ENgettimeparam(int, long *); + int DLLIMPORT ENgetflowunits(int *); + int DLLIMPORT ENgetpatternindex(char *, int *); + int DLLIMPORT ENgetpatternid(int, char *); + int DLLIMPORT ENgetpatternlen(int, int *); + int DLLIMPORT ENgetpatternvalue(int, int, float *); + int DLLIMPORT ENgetqualtype(int *, int *); + int DLLIMPORT ENgeterror(int, char *, int); + + int DLLIMPORT ENgetnodeindex(char *, int *); + int DLLIMPORT ENgetnodeid(int, char *); + int DLLIMPORT ENgetnodetype(int, int *); + int DLLIMPORT ENgetnodevalue(int, int, float *); + + int DLLIMPORT ENgetnumdemands(int, int *); + int DLLIMPORT ENgetbasedemand(int, int, float *); + int DLLIMPORT ENgetdemandpattern(int, int, int *); + + int DLLIMPORT ENgetlinkindex(char *, int *); + int DLLIMPORT ENgetlinkid(int, char *); + int DLLIMPORT ENgetlinktype(int, int *); + int DLLIMPORT ENgetlinknodes(int, int *, int *); + int DLLIMPORT ENgetlinkvalue(int, int, float *); + + int DLLIMPORT ENgetcurve(int curveIndex, int *nValues, float **xValues, float **yValues); + + int DLLIMPORT ENgetversion(int *); + + int DLLIMPORT ENsetcontrol(int, int, int, float, int, float); + int DLLIMPORT ENsetnodevalue(int, int, float); + int DLLIMPORT ENsetlinkvalue(int, int, float); + int DLLIMPORT ENaddpattern(char *); + int DLLIMPORT ENsetpattern(int, float *, int); + int DLLIMPORT ENsetpatternvalue(int, int, float); + int DLLIMPORT ENsettimeparam(int, long); + int DLLIMPORT ENsetoption(int, float); + int DLLIMPORT ENsetstatusreport(int); + int DLLIMPORT ENsetqualtype(int, char *, char *, char *); + + //LemonTiger functions + /* See testLT.c for a LemonTiger test */ + + //LT equivalent to ENopenH() + ENopenQ() + ENinitH() + ENinitQ() + int DLLIMPORT ENopeninitHQ(); + + //LT equivalent to ENrunQ() + ENnextQ(); + int DLLIMPORT ENrunnextHQ(long*, long*); + + //LT equivalent to ENrunQ() + ENstepQ(); + int DLLIMPORT ENrunstepHQ(long*, long*); + + //LT equivalent to ENcloseH() + ENcloseQ(); + int DLLIMPORT ENcloseHQ(); + + +#ifdef __cplusplus +}; +#endif + + + +#endif //LEMONTIGER_H -int ENcloseHQ(); -#endif \ No newline at end of file diff --git a/src/testLT.c b/src/testLT.c index ba173b8..9729186 100644 --- a/src/testLT.c +++ b/src/testLT.c @@ -5,7 +5,6 @@ #include #include "types.h" #include "vars.h" -#include "toolkit.h" #include "lemontiger.h" @@ -54,6 +53,7 @@ int main(int argc, char* argv[]) { printf("\nReset time pointer and run WQ.\n"); for (step=1, ENopenQ(), ENinitQ(0); // this operation resets the internal time pointer (back to 0) step>0; ENnextQ(&step)) { + ENrunQ(&stime); @@ -77,10 +77,10 @@ int main(int argc, char* argv[]) { if (err=ENopen(argv[1], argv[2], "")) return err; for (ENopeninitHQ(), tleft=Dur; tleft>0; ) { - ENrunstepHQ(&stime, &tleft); - - + //ENrunstepHQ(&stime, &tleft); + ENrunnextHQ(&stime, &tleft); //well I know it should be tstep + if (stime == TIME_A || stime == TIME_B || stime == TIME_C) { //if (! (stime%1800)){ printf("Simulation = %d sec, time left = %d sec.\n", stime, tleft); diff --git a/src/toolkit.h b/src/toolkit.h index 3e0501b..87b0a9b 100755 --- a/src/toolkit.h +++ b/src/toolkit.h @@ -20,28 +20,13 @@ AUTHOR: L. Rossman /*** New compile directives ***/ //(2.00.11 - LR) //#define CLE /* Compile as a command line executable */ -#define CLE_LT /* LemonTiger test */ //#define SOL /* Compile as a shared object library */ //#define DLL /* Compile as a Windows DLL */ +//#define CLE_LT /* LemonTiger test */ //Jinduan Chen +#define DLL_LT /* Compile as a Windows DLL of LemonTiger */ -#ifndef DLLEXPORT - #ifdef DLL - #ifdef __cplusplus - #define DLLEXPORT extern "C" __declspec(dllexport) - #else - #define DLLEXPORT __declspec(dllexport) - #endif - #elif defined(CYGWIN) - #define DLLEXPORT __stdcall - #else - #ifdef __cplusplus - #define DLLEXPORT - #else - #define DLLEXPORT - #endif - #endif -#endif +#define DLLEXPORT __declspec(dllexport) // --- Define the EPANET toolkit constants @@ -253,8 +238,23 @@ extern "C" { int DLLEXPORT ENsetstatusreport(int); int DLLEXPORT ENsetqualtype(int, char *, char *, char *); + //LemonTiger functions + /* See testLT.c for a LemonTiger test */ + + //LT equivalent to ENopenH() + ENopenQ() + ENinitH() + ENinitQ() + int DLLEXPORT ENopeninitHQ(); + + //LT equivalent to ENrunQ() + ENnextQ(); + int DLLEXPORT ENrunnextHQ(long*, long*); + + //LT equivalent to ENrunQ() + ENstepQ(); + int DLLEXPORT ENrunstepHQ(long*, long*); + + //LT equivalent to ENcloseH() + ENcloseQ(); + int DLLEXPORT ENcloseHQ(); + #if defined(__cplusplus) } #endif -#endif \ No newline at end of file +#endif //TOOLKIT_H \ No newline at end of file