Commit Graph

87 Commits

Author SHA1 Message Date
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
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
Sam Hatchett
a4d27ad489 mac rpath in cmake 2016-07-25 20:12:02 -04: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
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
1d8d2fb882 combining testing framework with python diff script 2015-12-17 13:22:28 -05:00
Sam Hatchett
de211562f2 adds cmake build for ENBOF 2015-12-16 16:28:40 -05:00
Elad Salomons
19f04fb8b3 Add WIN build for linked EXE
Now the WIN build script supports two options: one is a standalone EXE
were the entire code base is compiled into one EXE file and the second
is an EXE which is linked to the DLL
2015-12-09 21:55:16 +02:00
Sam Hatchett
4ccab6a27e simplify cmake file 2015-12-07 17:18:30 -05:00
sam hatchett
bcc1dcc806 Merge branch 'dev-2.1' into doxy-trial
# Conflicts fixed:
#	include/epanet2.h
#	src/epanet.c
2015-11-28 13:22:45 -05:00
sam hatchett
82e8d2a329 Merge remote-tracking branch 'origin/dev-2.1' into dev-2.1 2015-11-28 12:41:09 -05:00
Elad Salomons
096167af8b Change ENgetheadcurve to ENgetheadcurveindex
Closes #31
2015-11-28 00:21:36 +02:00
Sam Hatchett
d191ec73d6 xcode build file update to use correct input files 2015-11-25 19:41:38 -05:00
Maurizio Cingi
60dc2870f5 adapted Linux/Makefile and created runepanet.sh.template 2015-11-25 12:03:51 +01:00
Maurizio Cingi
1905c1011c adapted Linux/Makefile and created runepanet.sh.template 2015-11-25 12:01:51 +01:00
mauriziocingi
ea08fb9da1 undone Warnflag declaration due to cl.exe incompatibilities , now Warnflag is retuned with errorcode 2015-11-20 13:35:40 +01:00
mauriziocingi
cca1cda37a added Warnflag in exported symbols 2015-11-04 13:55:01 +01:00
Sam Hatchett
41c47bcc09 support dox in Xcode build 2015-09-30 15:14:40 -04:00
Elad Salomons
472d9dd35b Added curves SET functions
ENsetcurvevalue, ENsetcurve and ENaddcurve
This should close issue #9
2015-09-18 14:54:43 +03:00
Elad Salomons
02a42fe16b Added curve GET functions
ENgetcurveindex, ENgetcurveid, ENgetcurvelen and ENgetcurvevalue. This
is for issue #9
2015-09-18 13:03:53 +03:00
Sam Hatchett
b62f179e96 more build file targets related to float-precision builds, and comments about the use of that define 2015-09-15 11:42:07 -04:00
Sam Hatchett
7dfd7f748d fixes mac compilation, adds sample networks and debug schema 2015-09-15 10:46:37 -04:00
Sam Hatchett
79d215732c Merge branch 'coordinates-getter' into dev-2.1
Conflicts resolved in :
	build/Linux/Makefile
	build/Linux/Makefile_Rev
	build/Xcode/epanet.xcodeproj/project.pbxproj
	include/epanet2.h
2015-09-15 10:29:27 -04:00
Sam Hatchett
13f5741310 moving Xcode build files 2015-09-15 10:02:00 -04:00
Elad Salomons
c12f901454 added ENsetcoord function
also minor fix to include files
2015-09-13 09:53:21 +03:00
Will Furnass
a35a61ef6d Ensure that libm is linked to in cmake-driven builds 2015-07-31 18:50:26 +01:00
Will Furnass
b245f4a5a7 Request use of C99 standard in Linux Makefiles 2015-07-31 18:22:24 +01:00
Demetrios Eliades
ce633b61bd Bug correction for Windows x64 compilation code.
There seems to be an issue when creating the def file, so this was
removed. Also an absolute path which was included by accident was
removed.
2015-07-04 15:18:55 +03:00
Demetrios Eliades
62730e6281 Make files with relative paths
Based on @eladsal's code.

Location of Microsoft SDK is now retrieved from the registry. Also x86
and x64-bit architectures are included.
2015-06-16 09:42:19 +03:00
Elad Salomons
fb63b874f8 Moving def file into build 2015-06-14 07:55:42 +03:00
Elad Salomons
2c81796f71 One click compilation for Win DLL & EXE 2015-06-13 00:32:26 +03:00
Sam Hatchett
23865315aa removing utility code from library source
main function should only be in standalone app. also removing inline
defs for compile-time directives
2015-06-12 11:22:04 -04:00
Sam Hatchett
33edb5ba57 cmake 2015-06-12 10:34:12 -04:00
Sam Hatchett
2d064c60ec build files 2015-06-12 10:34:06 -04:00
Sam Hatchett
2563ae62c6 Merge remote-tracking branch 'origin/owa_next'
# Conflicts:
#	build/Linux/Makefile
#	build/Linux/Makefile_Rev
#	src/epanet.c
#	src/output.c
#	src/toolkit.h
2015-06-09 13:34:13 -04:00
Sam Hatchett
caa794447c updated hash methods. just increasing the size of the hash helps a lot with loading larger networks. perhaps hash could be extended to dynamically size based on network size. 2014-01-31 11:16:07 -05:00
Will Furnass
3a3d0bdc06 Fixed typo in makefiles (should be -Wl, not -W1) 2013-10-08 17:37:51 +01:00
sam hatchett
519daf8e3e adding debuggable conditionals, fixing lemontiger bug
… reorientsegs was borked
2013-09-27 22:19:54 -04:00
sam hatchett
5b151dd09b added getter for curve id 2013-08-28 18:44:01 -04:00
sam hatchett
e16de988cf tank geometry and curve time series 2013-08-28 18:44:00 -04:00
Sam Hatchett
e7f6a8a085 fixed the getstatistic api call -- should return floattype by ref 2013-07-23 14:56:12 -04:00
Sam Hatchett
15d187433f needed mods
- adding qtime setter
- formatting issues
2013-07-19 17:36:04 -04:00
Sam Hatchett
ba82aee97d Merge branch 'rtx-1.1-lib-mods' into lemontiger-rtx
Conflicts:
	build/Xcode/epanet/epanet.xcodeproj/project.pbxproj
	include/epanet2.h
	src/epanet.c
	src/hydraul.c
	src/quality.c
	src/toolkit.h
	src/types.h
	src/vars.h
2013-07-19 13:27:26 -04:00
Sam Hatchett
3e92016bee zones are now DMAs 2013-07-19 11:13:58 -04:00
Sam Hatchett
5bffc18798 llvm compilation changes (enum scoping)
- added useful setMultiplierForSource method to Aggregator.
2013-07-15 13:47:01 -04:00
Sam Hatchett
067c0fd950 fixing coordinates bug, adding useful methods 2013-05-31 11:59:09 -04:00
Sam Hatchett
d72162114a double-typed en toolkit for compilation 2013-05-28 09:47:25 -04:00
sam hatchett
4c1155745b setting float type by define 2013-05-23 19:53:26 -04:00