Files
EPANET/ReleaseNotes2_3.md

6.6 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_open to EN_openH and EN_openQ so that partial network data files could be opened by the toolkit.
  • A EN_setcurvetype function was added to allow API clients to set a curve's type (e.g., EN_PUMP_CURVE, EN_VOLUME_CURVE, etc.).
  • A EN_setvertex function 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_CURVE and EN_PCV_CURVE, respectively.
  • The EN_getlinkvalue and EN_setlinkvalue functions were updated to get and set the values of EN_GPV_CURVE and EN_PCV_CURVE.
  • Negative pressure values for EN_SETTING are now permitted in the EN_setlinkvalue function.
  • The EN_STARTTIME parameter was added into the EN_settimeparam function.
  • A EN_DEMANDPATTERN parameter 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 the EN_setoption and EN_getoption functions, respectively, and is saved to the file when the EN_saveinpfile function is called.
  • The EN_getaveragepatternvalue function 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 using EN_setnodevalue or EN_settankdata has 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_CURVE can now be used with the EN_getcurvetype and EN_setcurvetype to 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_EMITBACKFLOW option was added that either allows emitters to have reverse flow through them (the default) or not.
  • An incorrect tank elevation value set using EN_settankdata with SI units has been fixed.
  • The EN_INITSETTING option in function EN_getlinkvalue will now return EN_MISSING for a valve whose initial status is fixed to EN_OPEN or EN_CLOSED.
  • The functions EN_getnodevalue and EN_getlinkvalue now include the options EN_NODE_INCONTROL and EN_LINK_INCONTROL to 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 tank is returned when EN_settankdata or EN_setnodevalue attempts to set a tank-only parameter for a non-tank node.
  • The function EN_saveinpfile was 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 by EN_saveinpfile.
  • EN_SET_CLOSED and EN_SET_OPEN constants were added that can be used with EN_setcontrol to fix the status of pipes and valves to completely closed or completely open.
  • EN_EMITTERFLOW can now be used with EN_getnodevalue to retrieve a node's emitter flow rate.
  • EN_STATUS_REPORT can now be used with EN_getoption and EN_setoption to get or set the type of status report that EPANET will generate (EN_NO_REPORT, EN_NORMAL_REPORT or EN_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 getclosedlink in report.c to use a loop instead of recursion to prevent a stack overflow during the analysis of very large disconnections.
  • Setting the demand multiplier within the [DEMANDS] section of INP has been depreciated, please use DEMAND MULTIPLIER inside [OPTIONS] instead.
  • EN_PRESS_UNITS can now be used with EN_getoption and EN_setoption to get or set the pressure unit used in EPANET.
  • Continuous barrier functions were added to constrain emitter flows to allowable values.