Commit Graph

293 Commits

Author SHA1 Message Date
Sam Hatchett
e1acb5a601 improves file availability from cmake-generated projects 2018-01-11 14:16:20 -05:00
Sam Hatchett
70c38b0d85 moves windows build to better-named directory 2018-01-11 14:16:00 -05:00
Sam Hatchett
f97d837231 Feature wrapper (#136)
this quite sizable commit does several things, but is primarily
focussed on building a toolkit that can run simultaneous
simulations/analyses within a shared memory space. Versions <=2.1 use a
long list of global variables that prevent multiple instantiations on
linux systems without resorting to compilation tricks (like duplicate
binaries or similar via static linkage). This version uses a single "Project" pointer to encapsulate
the network and analysis data. There are no changes to existing algo
implementations other than to accomodate dereferencing of the passed-in
pointers. A more detailed list of major changes below:

- mirrors all “ENxxxx” function calls with “EN_xxxx” versions (note the
underscore) that take an extra first parameter: a pointer to an
EN_Project struct, which contains all network, hydraulic, quality, and
associated data.
- tweaks some code formatting to make it more readable
- removes some deprecated/commented code that was sufficiently old
- fixes implicit type-cast warnings

* Added ENaddnode and ENaddlink functions

* More memory reallocations

* Added ENInit, ENsetheadcurveindex

* Added ENdeletelink and ENdeletenode

* restored default behavior for float types

* fixed type

* Added docstrings for ENinit

* cleanup change

* moves global rule variables to vars.h

* migrates rule structs to typedefs

for better readability

* char types to proper enums

fixes #93

* Change some variable declarations for compatibility

Changes to keep compatibility with C89 compilers: variables must be
declared at the top of the functions. Remove the use of EN_LinkType in
function call as it is not compatible with ENgetnodetype.

* Moved declaration of idstodelete to top of function

* Updated ENinit function and headers

Updated header files with new functions
Updated def file with new functions
For ENinit changes names of parameters #98
Added enum for headloss formula

* Missed these files in 1a033fc

* migrates char types to enums fixes #93,

supports unified link/node type enums, rather than public/private
redefinitions

* removing links in reverse-index order maintains proper indexing fixes #96

* style

* clarifies curve getter units issue (dox)

closes #95

* fixes link/node confusion in ENsetlinktype

partially reverts a3bce95dc330a5a297634a303d438e2e1bc41cc9

* partial compilation fix

* fixes dox issue

* fixes allocation issues with enums

- updates style in various places
- introduces FlowDirection enum
- use snprintf to prevent overflow

* fixes enum type cast

* updated mac project settings

* Use of _snprintf on Windows and remove DLLEXPORT from mempool.h

snprintf it not compatible on Windows so we use _snprintf
mempool gave starnge compilation errors while removing DLLEXPORT worked.
Not sure why these functions needed to be exposed in the DLL?

* Revert "Use of _snprintf on Windows and remove DLLEXPORT from mempool.h"

This reverts commit 6238f77d47fa0feaabe5836043c006937de433a2.

* use of _snprintf instead of snprintf on Windows and removed DLLEXPORT from mempool.h

Had compilation errors on mempool.h. Removed DLLEXPORT so solve it. Not
sure why there was a need to expose these functions?

* Shift indices for Links in ENaddnode

Need to shift indices for Links not just Pipes since a pump could be
connected directly to a reservoir. Also set the defult base demand to
zero (was 5).

* Set defualts for madatory link properties in ENaddlink and small fix for ENsetheadcurveindex

Relates to #102 and closes #103

* wraps globals into structs, duplicates api functions with objective versions



* parse and serialize Comment field for network elements

related to #47

* adds getter for head/efficiency curve

in EN_getlinkvalue

* adds getter for event node index

… to return the index of the junction (tank) that triggered the event.

* fixes edge case in parsing

… where inp files without demands in [JUNCTIONS] and without any
[DEMAND] categories will fail.

* adds freeing function for project pointer

* removes redundant string literals, fixes overrun issue in error message getter function

* check for hydraulics already closed

* moving error definitions to data file

* deprecates ENR err message getter (unused)

* updates location of errors data file

also begins to expose blind structs to curves and patterns,
anticipating buildout of APIs for those.

* updates CLI output to reflect executable name as invoked

relates to #109

* Feature nrtest (#131)

* Initial commit EPANET testing tools.

* Initial commit for epanet-nrtestsuite

* SWIG wrapper for EPANET outputapi (#118)

* Removed pervious version of outputapi and wrapper

* SWIG wrapper for EPANET outputapi

* Patching cmake build script fixed target for outputapi

* Build failing on deprecated test script

* Minor changes. Responding to review comments.

* Feature nrtest (#121)

* Configured python setup to automatically build nrtest tools.

* Working on build / testing automation

* Adding EPANET 2.0.12 benchmark

* Updated Travis yml to run nrtest

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning again

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Working on configuring python environment and building test tools under Travis CI.

* Making gen-config.sh and run-nrtest.sh executable

* Debugging .travis.yml

* Debugging .travis.yml

* Debugging .travis.yml again

* Debugging .travis.yml again

* debugging travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* Fixing bug with __strncpy_chk destlen < len

* nrtesting clean up

* re-implements fixes from:

5eead5ae40
3c788567a4

* removes extraneous build files, moves cmake and updates travis

* mirror of 9b37035560f9683f1514b439f7586a5c17bca5bf

* Move some variable declarations

* More variable declarations

* Fix TmpDir

* Allocate _defaultModel

* Fix EN_addcurve funcrion

* Fix for inpfile

* Fix writeRuleinInp call

* Set MAXMSG to 79 chars

* Fix for flow direction

* Refactoring testing related python packages and SWIG wrapper bug fix (#139)

* Eliminated epanet-reader package. Removed numpy dependency from epanet-output. Fixed reference counting bug in SWIG wrapper. Added error checking to run_nrtest.sh. Added nrtest package to requirements file.

* changing buildhome directory

* Fixing bug related to preprocessor definition of PI
2018-01-09 16:56:42 -05:00
Elad Salomons
5eead5ae40 Fix quality conversion factor error in ENsetqualtype
Reported here:

http://community.wateranalytics.org/t/difference-in-water-age-calculated-in-epanet-and-in-matlab-using-epanet-matlab-toolkit/406/12
2017-06-15 16:21:39 +03:00
Elad Salomons
a00269e39a Added comment for 3c78856
Added comment for 3c78856
2017-05-01 13:28:59 +03:00
Elad Salomons
3c788567a4 Fix ENsetqualtype to set node initial values
When changing from CHEM to AGE or TRACE, nodes initial quality values
must be returned to their original ones. Reported by R.T., CSIRO AU -
thanks!
2017-05-01 13:25:59 +03:00
Elad Salomons
8ab0f06ccc Added option to retrieve the pumps price pattern
Added to ENgetlinkvalue function like the speed\status pattern. use the
new EN_PRICEPATTERN constant.
2017-04-13 12:14:32 +03:00
Demetrios G. Eliades
8d968738ac Added the link to the step-by-step tutorial (#76) 2016-11-21 14:38:53 -05:00
Elad Salomons
09bf10d4a7 Merge pull request #89 from OpenWaterAnalytics/dev-rule-apis
Merge dev-rule-apis into dev
2016-11-21 21:31:17 +02:00
Elad Salomons
e1da9bc9d7 Fix duplicate w_POWER definition
Fix duplicate w_POWER definition and some house keeping. Tested the new
commit by @AngelaMarchi from #87, all results are the same as version
2.1.
2016-11-09 16:37:57 +02:00
Elad Salomons
bca5409952 Merge pull request #87 from AngelaMarchi/ChangingRuleBased_v2
Thanks @AngelaMarchi
2016-11-08 12:00:20 +02:00
AngelaMarchi
83dd6c7b7c ChangingRuleBased_v2
The code has the following modifications:
- RULE section is written just after controls
- SYST is now written SYSTEM (also PRESSURE, DEMAND, POWER, SETTING,
FILLTIME and DRAINTIME have been changed)
- some description to the function writeRuleinInp has been added
- Actions are now written in the correct order
2016-11-08 18:37:54 +10:30
Elad Salomons
ab4622b276 Updated more float types in function APIs
Updated APIs calls to support EN_API_FLOAT_TYPE and few updates to the
DEF file
2016-10-10 11:45:02 +03:00
Elad Salomons
9942f6761d Updated def file and float types in function APIs
Added the new funcions to the DEF file.
Updated VB headers from Double to Single
Changed a few APIs calls to support EN_API_FLOAT_TYPE - this needs more
work for the rest of the new functions
2016-09-24 12:28:20 +03:00
Elad Salomons
98b86cd014 Merge pull request #84 from AngelaMarchi/ChangingRuleBased
Changing rule based
2016-09-23 14:00:34 +03:00
AngelaMarchi
4e349cd3c1 ModifyingRuleBaseControls
These modifications allow rule based controls to be modified with the
additional functions added in the dll toolkit
2016-09-23 13:14:15 +09:30
AngelaMarchi
6f8be1be55 ModifyingRuleBaseControls
These modifications allow rule based controls to be modified with the
additional functions added in the dll toolkit
2016-09-23 13:07:06 +09:30
AngelaMarchi
1d071d19ba VSP efficiency + retrieving efficiency directly (#81)
* VSP efficiency + retrieving efficiency directly

Changes to the getenergy function (in hydraulic.c) to compute the
correct efficiency of variable speed pumps according to the affinity
laws.
Changes to epanet2.h and epanet.c are for retrieving the efficiency of
pumps throught the ENgetlinkvalue function (code 16 for efficiency)

* Update epanet.c

* VSP efficiency (incl. bas and vb file)

- bas and vb file have been updated with code 16 for efficiency.
- Retrieving efficiency case has been improved.
2016-09-09 09:57:16 -07:00
Elad Salomons
8b4a03d349 Merge pull request #75 from Mariosmsk/dev
Added reservoirs in EN_TANKCOUNT header comment
2016-08-18 15:04:42 +03:00
Marios Kyriakou
7dfa6111be Added reservoirs in EN_TANKCOUNT header comment
EN_TANKCOUNT is for both tanks and reservoirs.
2016-08-08 12:26:14 +03:00
Sam Hatchett
1f5327a55e adds the rest of the pattern functions to the module documentation (#74) 2016-07-30 09:43:28 -04:00
Demetrios G. Eliades
9da07f827b Added date of V2.1 release (#72) 2016-07-28 20:15:32 -04:00
Sam Hatchett
e34adc1685 update readme for v2.1 tag 2016-07-25 20:18:06 -04:00
Sam Hatchett
b75055838e Merge branch 'dev-2.1' 2016-07-25 20:14:44 -04:00
Sam Hatchett
e2a8e5a614 resolve conflict 2016-07-25 20:14:33 -04:00
Sam Hatchett
a4d27ad489 mac rpath in cmake 2016-07-25 20:12:02 -04:00
Sam Hatchett
ea6b3619f7 note about api float type 2016-07-21 11:39:16 -04:00
Elad Salomons
773705e3d2 Consistency change in ENgetcurve function call 2016-07-21 17:07:50 +03:00
Elad Salomons
754d24c118 Small fix to VB header file
and consistency in ENgetcurve function call
2016-07-21 17:04:29 +03:00
Elad Salomons
e42d59e754 Revert "Small VB header fix"
This reverts commit c81d2c6954.
2016-07-21 17:01:38 +03:00
Elad Salomons
c81d2c6954 Small VB header fix
and consistency in ENgetcurve function call
2016-07-21 17:00:33 +03:00
Sam Hatchett
997c8839e1 Merge pull request #63 from mauriziocingi/patch-1
Update epanet.c
2016-07-20 16:29:52 -04:00
Elad Salomons
98e9a31eb3 Merge pull request #69 from eldemet/dev-2.1-windsdk
Windows compilation using SDK
2016-07-15 10:46:28 +03:00
eldemet
1d83b69427 deleted redundant bat files 2016-07-15 09:53:26 +03:00
eldemet
c098ca286a Create Makefile.bat 2016-07-15 09:48:43 +03:00
eldemet
b26e3dce49 Exclude windows sdk compiled folders 2016-07-15 09:47:38 +03:00
Sam Hatchett
4e3efb1aba disable local file location 2016-07-14 15:28:11 -04:00
Sam Hatchett
528d972f54 updates and proper tagging for dox 2016-07-14 15:03:14 -04:00
Sam Hatchett
7f958d797d update doxyfile 2016-07-14 14:35:45 -04:00
Sam Hatchett
2c60a703b5 Update README.md 2016-07-13 13:20:56 -04:00
Sam Hatchett
2d39d1fee4 Update README.md 2016-07-13 13:19:18 -04:00
Sam Hatchett
880f57d237 Merge branch 'dev-2.1-doxy-markup' into dev-2.1
updates comment blocks to oxygen-compatible, and adds release notes
(draft)
2016-07-13 13:16:53 -04:00
Sam Hatchett
cdbe7e409a adding release notes, 2.1 2016-07-13 13:14:42 -04:00
Maurizio Cingi
31a05e34cc Update epanet.c 2015-12-21 22:21:00 +01:00
Elad Salomons
1c0690837f Fix for avgqual function
Due to changes in the order initsegs was called the links average
quality value, for the initial time step, was wrong. This was found in
issue #16
2015-12-18 13:34:04 +02:00
Sam Hatchett
8d90000f3f Merge pull request #62 from OpenWaterAnalytics/dev-2.1-debug-python-test
Dev 2.1 debug python test
2015-12-17 13:52:52 -05:00
sam hatchett
ff6225372a there are two hard problems.
naming things and counting things
2015-12-17 13:49:23 -05:00
sam hatchett
8fe3bbef23 fixes diff script 2015-12-17 13:46:32 -05:00
sam hatchett
81fa79745a fixing python printing 2015-12-17 13:36:53 -05:00
sam hatchett
eb629b8392 better debug output 2015-12-17 13:33:33 -05:00