6.2 KiB
6.2 KiB
Release Notes for EPANET 2.3
This document describes the changes and updates that have been made in version 2.3 of EPANET.
- The check for at least two nodes, one tank/reservoir and no unconnected junction nodes was moved from
EN_opentoEN_openHandEN_openQso that partial network data files could be opened by the toolkit. - A
EN_setcurvetypefunction was added to allow API clients to set a curve's type (e.g.,EN_PUMP_CURVE,EN_VOLUME_CURVE,etc.). - A
EN_setvertexfunction was added to allow API clients to change the coordinates of a single link vertex. - The indices of a General Purpose Valve (GPV) and a Positional Control Valve (PCV) were added to the list of editable Link Properties using the symbolic constant names
EN_GPV_CURVEandEN_PCV_CURVE, respectively. - The
EN_getlinkvalueandEN_setlinkvaluefunctions were updated to get and set the values ofEN_GPV_CURVEandEN_PCV_CURVE. - Negative pressure values for
EN_SETTINGare now permitted in theEN_setlinkvaluefunction. - The
EN_STARTTIMEparameter was added into theEN_settimeparamfunction. - A
EN_DEMANDPATTERNparameter was added as the index of the default time pattern used by demands with no specific pattern assigned. It can be set or retrieved with theEN_setoptionandEN_getoptionfunctions, respectively, and is saved to the file when theEN_saveinpfilefunction is called. - The
EN_getaveragepatternvaluefunction will now accept a pattern index of zero which represents the constant pattern assigned to junction demands by default. - The adjustment of a tank's minimum volume (
Vmin) when its parameters are changed usingEN_setnodevalueorEN_settankdatahas been corrected. - A pump whose status is set to CLOSED in the input file now also has its speed setting set to zero which allows a simple pressure control to activate the pump correctly.
- A failure to raise an error condition for a non-positive pipe roughness in the input file has been fixed.
- The calculation of head loss gradient for low flow conditions was corrected.
- Improved updating and convergence tests were added to pressure-dependent demand analysis.
- Improved checks to prevent outflow from empty tanks or inflow to full (non-overflow) tanks, including the case where a link is connected to a pair of tanks, were added.
- The CI regression test protocol was modified by:
- changing the absolute tolerance used to compare the closeness of test results to benchmark values from 0 to 0.0001
- dropping the "correct decimal digits" test
- dropping the check for identical status report content since it prevents accepting code changes that produce more accurate solutions in fewer iterations.
- A possible loss of network connectivity when evaluating a Pressure Sustaining Valve was prevented.
- Having the implied loss coefficient for an active Flow Control Valve be less than its fully opened value was prevented.
- A new type of valve, a Positional Control Valve (PCV), was added. It uses a valve characteristic curve to relate its loss coefficient to a percentage open setting (parameter -
EN_PCV). EN_VALVE_CURVEcan now be used with theEN_getcurvetypeandEN_setcurvetypeto get or set the valve position curve.- A new set of functions has been added to get information about upcoming time step events. Users will now see what type of event is going to cause the end of a time step to occur. See
EN_timetonextevent. - A new set of functions has been added to allow users to set a reporting callback function. The user-supplied function will receive all output normally directed to the report file.
- A
EN_EMITBACKFLOWoption was added that either allows emitters to have reverse flow through them (the default) or not. - An incorrect tank elevation value set using
EN_settankdatawith SI units has been fixed. - The
EN_INITSETTINGoption in functionEN_getlinkvaluewill now returnEN_MISSINGfor a valve whose initial status is fixed toEN_OPENorEN_CLOSED. - The functions
EN_getnodevalueandEN_getlinkvaluenow include the optionsEN_NODE_INCONTROLandEN_LINK_INCONTROLto determine whether a node or link appears in any simple or rule-based control. - An error is no longer raised when a minor loss coefficient of zero is assigned in
EN_setlinkvalue(ph, index, EN_MINORLOSS, 0). - The incorrect display of unconnected nodes has been fixed.
- A header file for binding C# to the Toolkit has been added.
- A new error code
263 - node is not a tankis returned whenEN_settankdataorEN_setnodevalueattempts to set a tank-only parameter for a non-tank node. - The function
EN_saveinpfilewas corrected for simple controls on GPV's by saving their status instead of the index of their head loss curve. - Support was added for Conan dependency manager.
- The internal Qualflag variable is now adjusted when an EPANET input file has a QUALITY option not equal to NONE and a simulation duration of zero.
- Support was added for cubic meters per second (
EN_CMS) flow units. - An EPANET input file with simple timer control that has more than 9 input tokens no longer results in an incorrect hour setting.
- Errors in node and link vertex coordinates are now ignored when reading an EPANET input file.
- Only non-zero demands are now included in the
[DEMANDS]section of the input file produced byEN_saveinpfile. EN_SET_CLOSEDandEN_SET_OPENconstants were added that can be used withEN_setcontrolto fix the status of pipes and valves to completely closed or completely open.EN_EMITTERFLOWcan now be used withEN_getnodevalueto retrieve a node's emitter flow rate.EN_STATUS_REPORTcan now be used withEN_getoptionandEN_setoptionto get or set the type of status report that EPANET will generate (EN_NO_REPORT,EN_NORMAL_REPORTorEN_FULL_REPORT).- A possible parser error that could result in a Trace Node ID in an input file not being recognized was fixed.
- Additional API functions for enabling/disabling controls and rules were added (
EN_getcontrolenabled,EN_setcontrolenabled,EN_getruleenabled,EN_setruleenabled). - Updated the internal function
getclosedlinkin report.c to use a loop instead of recursion to prevent a stack overflow during the analysis of very large disconnections.