site address is https://github.com/OpenWaterAnalytics/epanet-dev

### The new features of EPANET3.

### Pressure Dependent Demands

EPANET 3 offers four different ways of handling consumer demands at network nodes through its ** DEMAND_MODEL** option:

1.**FIXED** – demands are fixed values not dependent on pressure.

2. **CONSTRAINED** – demands are reduced so that no net negative pressures occur.

3. **POWER** – a node’s demand varies as a power function of pressure.

4. **LOGISTIC** – a node’s demand varies as a logistic function of pressure.

### Pipe Leakage

Pressure dependent pipe leakage can now be modeled using the new ** LEAKAGE_MODEL** option. The choices are:

1. **NONE** for no leakage modeling.

2. **POWER** for leakage rate = C1*(P)^C2 3. **FAVAD** for leakage rate = C1*(P)^0.5 + C2*(P)^1.5

### Hydraulic Convergence Criteria

In EPANET 2, convergence to an acceptable hydraulic solution occurred when the sum of all link flow changes divided by the sum of all link flows was below the ** ACCURACY** (re-named to

**) option value. Unfortunately meeting this criterion did not always guarantee that the network was hydraulically balanced (e.g., that the head loss computed from the flow in each link equaled the difference between the computed heads at the link’s end nodes). EPANET 3 introduces a more rigorous set of criteria all governed by a single**

*RELATIVE_ACCURACY***option value:**

*HYDRAULIC_TOLERANCE*1. The largest difference between the computed head loss in each link and the heads at its end nodes must be below the tolerance.

2. The largest difference between inflow and outflow at a non-fixed grade node must be below the tolerance.

3. The largest change in link flow rate must be below the tolerance.

### Tank Dynamics

EPANET 2 used a foward difference (or Euler) method to approximate the change in storage tank water level over a time step as a function of the current flows within the network. This could cause instabilities to occur in and around tanks that were hydraulically coupled to one another. To remedy this, EPANET 3 models tank dynamics using the time weighted implicit formula proposed by Todini (Journal of Hydroinformatics, 13(2):167-180, 2011). A new option named ** TIME_WEIGHT** sets the weight to be used in this formulation. A value of 0 maintains the forward difference formula of EPANET 2 while a value of 1.0 results in a fully backwards difference formulation.

### Low Resistance Pipes

When using the Hazen-Williams head loss equation, EPANET 2’s hydraulic solver can have problems converging for networks with low resistance or zero flow pipes. To help avoid this, EPANET 3 employs a linear head loss threshold technique proposed by Gorev et al. (Journal of Hydraulic Engineering, 139(4):456-459, 2013). It replaces the nonlinear H-W head loss equation with a linear approximation for flow below a certain threshold. If the final solution has a flow below this it lowers the threshold to half the flow and continues the iterations.

### Closed Links and Check Valves

The method used by EPANET 2 to find the head loss through closed links and active check valves produced discontinuous gradients and, for check valves, was overly complicated. EPANET 3 uses a simple continuous “barrier” function for this purpose that rises rapidly when flow is in the wrong direction but otherwise approaches 0 (closed pipes always have their flow set to the wrong direction).

### Output Variables

The following quantities have been added to the set of computed results that can be retrieved through the API toolkit:

- node actual demand (which can be less than the full demand due to pressure dependency)
- node total outflow (consisting of actual demand, leakage flow, and emitter flow)
- link leakage flow
- link water quality

### Binary Output File Format

The binary file used to store computed results has been modified from the EPANET 2 format to include the new variables reported by EPANET 3. In addition, the file no longer includes the ID names and design data of nodes and links in its prolog section. The new binary file format can be gleaned from the code found in *Output/outputfile.cpp*.

### Additional Changes

- Emitters are prevented from having flow back into the network.
- The gradient of the Darcy-Weisbach head loss equation now includes the derivative of the friction factor.
- Proper adjustment of the efficiency curve is now made for variable speed pumps.
- Flow control valves can operate in either direction and warnings are no longer issued if the valve cannot supply its target flow.