Improved hydraulic engine
I have modified EPANET's hydraulic solver to improve its robustness in solving complex networks containing dozens to hundreds of check valves, flow and pressure regulating valves and pumps. Penalty functions replace status checks on CVs, FCVs and pumps so that their head loss v. flow functions now behave in a continuous manner while keeping their flows within feasible bounds. As a result the CHECKFREQ and MAXCHECK options used to tune the hydraulic solver have been deprecated. (The DAMPLIMIT option is still used to limit when status checks on PRVs/PSVs are made.)
The modified solver has been able to successfully solve several large scale networks that failed to converge under v2.2. For the regression test suite of networks it produces results that are the same or very close to the v2.2 benchmark values. However some differences are large enough to cause the automated CI testing to fail. I don't think we want to update the benchmark results until this modified version of EPANET, which can be found in the dev_2.3_hyd branch, has received more testing and there is consensus to update the code base with it.
@LRossman should we move this to v2.4?
Yes. I don't feel that this improvement is robust enough to include in a release. Some further tweaking and testing is needed.
Hi @LRossman,
The dev_2.3_hyd branch seems to have disappeared. Do you still have the code available somewhere?
@AbelHeinsbroek - The branch has been restored.