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:5eead5ae403c788567a4* 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
181 lines
5.9 KiB
Plaintext
181 lines
5.9 KiB
Plaintext
[TITLE]
|
|
EPANET Example Network 1
|
|
A simple example of modeling chlorine decay. Both bulk and
|
|
wall reactions are included.
|
|
|
|
[JUNCTIONS]
|
|
;ID Elev Demand Pattern
|
|
10 710 0 ;
|
|
11 710 150 ;
|
|
12 700 150 ;
|
|
13 695 100 ;
|
|
21 700 150 ;
|
|
22 695 200 ;
|
|
23 690 150 ;
|
|
31 700 100 ;
|
|
32 710 100 ;
|
|
|
|
[RESERVOIRS]
|
|
;ID Head Pattern
|
|
9 800 ;
|
|
|
|
[TANKS]
|
|
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
|
|
2 850 120 100 150 50.5 0 ;
|
|
|
|
[PIPES]
|
|
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
|
|
10 10 11 10530 18 100 0 Open ;
|
|
11 11 12 5280 14 100 0 Open ;
|
|
12 12 13 5280 10 100 0 Open ;
|
|
21 21 22 5280 10 100 0 Open ;
|
|
22 22 23 5280 12 100 0 Open ;
|
|
31 31 32 5280 6 100 0 Open ;
|
|
110 2 12 200 18 100 0 Open ;
|
|
111 11 21 5280 10 100 0 Open ;
|
|
112 12 22 5280 12 100 0 Open ;
|
|
113 13 23 5280 8 100 0 Open ;
|
|
121 21 31 5280 8 100 0 Open ;
|
|
122 22 32 5280 6 100 0 Open ;
|
|
|
|
[PUMPS]
|
|
;ID Node1 Node2 Parameters
|
|
9 9 10 HEAD 1 ;
|
|
|
|
[VALVES]
|
|
;ID Node1 Node2 Diameter Type Setting MinorLoss
|
|
|
|
[TAGS]
|
|
|
|
[DEMANDS]
|
|
;Junction Demand Pattern Category
|
|
|
|
[STATUS]
|
|
;ID Status/Setting
|
|
|
|
[PATTERNS]
|
|
;ID Multipliers
|
|
;Demand Pattern
|
|
1 1.0 1.2 1.4 1.6 1.4 1.2
|
|
1 1.0 0.8 0.6 0.4 0.6 0.8
|
|
|
|
[CURVES]
|
|
;ID X-Value Y-Value
|
|
;PUMP: Pump Curve for Pump 9
|
|
1 1500 250
|
|
|
|
[CONTROLS]
|
|
LINK 9 OPEN IF NODE 2 BELOW 110
|
|
LINK 9 CLOSED IF NODE 2 ABOVE 140
|
|
|
|
|
|
[RULES]
|
|
|
|
[ENERGY]
|
|
Global Efficiency 75
|
|
Global Price 0.0
|
|
Demand Charge 0.0
|
|
|
|
[EMITTERS]
|
|
;Junction Coefficient
|
|
|
|
[QUALITY]
|
|
;Node InitQual
|
|
10 0.5
|
|
11 0.5
|
|
12 0.5
|
|
13 0.5
|
|
21 0.5
|
|
22 0.5
|
|
23 0.5
|
|
31 0.5
|
|
32 0.5
|
|
9 1.0
|
|
2 1.0
|
|
|
|
[SOURCES]
|
|
;Node Type Quality Pattern
|
|
|
|
[REACTIONS]
|
|
;Type Pipe/Tank Coefficient
|
|
|
|
|
|
[REACTIONS]
|
|
Order Bulk 1
|
|
Order Tank 1
|
|
Order Wall 1
|
|
Global Bulk -.5
|
|
Global Wall -1
|
|
Limiting Potential 0.0
|
|
Roughness Correlation 0.0
|
|
|
|
[MIXING]
|
|
;Tank Model
|
|
|
|
[TIMES]
|
|
Duration 24:00
|
|
Hydraulic Timestep 1:00
|
|
Quality Timestep 0:05
|
|
Pattern Timestep 2:00
|
|
Pattern Start 0:00
|
|
Report Timestep 1:00
|
|
Report Start 0:00
|
|
Start ClockTime 12 am
|
|
Statistic None
|
|
|
|
[REPORT]
|
|
Status Yes
|
|
Summary No
|
|
Nodes All
|
|
Links All
|
|
|
|
|
|
[OPTIONS]
|
|
Units GPM
|
|
Headloss H-W
|
|
Specific Gravity 1.0
|
|
Viscosity 1.0
|
|
Trials 40
|
|
Accuracy 0.001
|
|
CHECKFREQ 2
|
|
MAXCHECK 10
|
|
;DAMPLIMIT 0
|
|
Unbalanced Continue 10
|
|
Pattern 1
|
|
Demand Multiplier 1.0
|
|
Emitter Exponent 0.5
|
|
Quality Chlorine mg/L
|
|
Diffusivity 1.0
|
|
Tolerance 0.01
|
|
|
|
[COORDINATES]
|
|
;Node X-Coord Y-Coord
|
|
10 20.00 70.00
|
|
11 30.00 70.00
|
|
12 50.00 70.00
|
|
13 70.00 70.00
|
|
21 30.00 40.00
|
|
22 50.00 40.00
|
|
23 70.00 40.00
|
|
31 30.00 10.00
|
|
32 50.00 10.00
|
|
9 10.00 70.00
|
|
2 50.00 90.00
|
|
|
|
[VERTICES]
|
|
;Link X-Coord Y-Coord
|
|
|
|
[LABELS]
|
|
;X-Coord Y-Coord Label & Anchor Node
|
|
6.99 73.63 "Source"
|
|
13.48 68.13 "Pump"
|
|
43.85 91.21 "Tank"
|
|
|
|
[BACKDROP]
|
|
DIMENSIONS 7.00 6.00 73.00 94.00
|
|
UNITS None
|
|
FILE
|
|
OFFSET 0.00 0.00
|
|
|
|
[END]
|