104 lines
2.3 KiB
Markdown
104 lines
2.3 KiB
Markdown
Release Notes for EPANET 2.1 {#release_2_1}
|
|
============================
|
|
|
|
The last update to the EPANET engine was "Build 2.00.12" in February of 2008. Since that time, a community effort to update and extend the open-source code has emerged. This group has made a number of bug-fixes and API additions that help to improve the EPANET engine for everyone. Version 2.1 was released in July 2016, after 8.5 years.
|
|
|
|
Contributors to this version (listed in order of first contribution):
|
|
|
|
- Lew Rossman
|
|
- Michael Tryby
|
|
- Feng Shang
|
|
- James Uber
|
|
- Tom Taxon
|
|
- Sam Hatchett
|
|
- Hyoungmin Woo
|
|
- Jinduan Chen
|
|
- Yunier Soad
|
|
- Mike Kane
|
|
- Demetrios Eliades
|
|
- Will Furnass
|
|
- Steffen Macke
|
|
- Mariosmsk
|
|
- Elad Salomons
|
|
- Maurizio Cingi
|
|
- Bryant McDonnell
|
|
|
|
##API Additions (new functions):
|
|
- `ENgetaveragepatternvalue`
|
|
- `ENgetstatistic`
|
|
- `ENgetcoord / ENsetcoord`
|
|
- `ENgetpumptype`
|
|
- `ENgetqualinfo`
|
|
|
|
###Demands
|
|
- `ENgetnumdemands`
|
|
- `ENgetbasedemand / ENsetbasedemand`
|
|
- `ENgetdemandpattern`
|
|
|
|
###Curves
|
|
- `ENgetcurve`
|
|
- `ENgetcurveid`
|
|
- `ENgetcurvelen`
|
|
- `ENgetcurvevalue`
|
|
- `ENsetcurvevalue`
|
|
- `ENsetcurve`
|
|
- `ENaddcurve`
|
|
- `ENgetheadcurveindex`
|
|
- `ENgetcurveindex`
|
|
|
|
|
|
##API Extensions (additional parameters)
|
|
###node value types:
|
|
- `EN_TANKVOLUME`
|
|
- `EN_MAXVOLUME`
|
|
|
|
###link value types:
|
|
- `EN_LINKQUAL`
|
|
- `EN_LINKPATTERN`
|
|
|
|
###time parameters:
|
|
- `EN_STARTTIME`
|
|
- `EN_HTIME`
|
|
- `EN_QTIME`
|
|
- `EN_HALTFLAG`
|
|
- `EN_NEXTEVENT`
|
|
|
|
###(new) statistic values:
|
|
- `EN_ITERATIONS`
|
|
- `EN_RELATIVEERROR`
|
|
|
|
###pump types
|
|
- `EN_CONST_HP`
|
|
- `EN_POWER_FUNC`
|
|
- `EN_CUSTOM`
|
|
|
|
##Notable Performance Improvements, Bug Fixes, Usage Features, and other notes
|
|
- API float type is a compile-time option with the `EN_API_FLOAT_TYPE` definition. Use either `float` or `double` - default if left undefined is `float` to maintain compatibility with 2.0.x
|
|
- updated hash table algorithm
|
|
- fixed memory leak when saving output
|
|
- enables interleaved hydraulic and water quality analysis steps:
|
|
|
|
```
|
|
ENopenH();
|
|
ENinitH(0);
|
|
ENinitQ(EN_NOSAVE);
|
|
do {
|
|
ENrunH(&t);
|
|
ENrunQ(&qt);
|
|
ENnextQ(&qstep);
|
|
// collect results
|
|
ENnextH(&tstep);
|
|
} while (tstep > 0);
|
|
ENcloseQ();
|
|
ENcloseH();
|
|
```
|
|
|
|
- engine code and command-line executable are now in separate implementation files
|
|
- parameter `#define` directives are now enumerated values
|
|
- main header now contains doxygen-compatible comment blocks for auto-generated documentation
|
|
|
|
|
|
|
|
|
|
|