# epanet3 is published on github.

### 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 RELATIVE_ACCURACY) 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 HYDRAULIC_TOLERANCE option value:

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)