  Increasing concerns on the security and quality of water distribution systems
(WDS), call for computational tools with performance guarantees. To this end,
this work revisits the physical laws governing water flow and provides a
hierarchy of solvers of complementary value. Given the water injection or
pressure at each WDS node, finding the water flows within pipes and pumps along
with the pressures at all WDS nodes constitutes the water flow (WF) problem.
The latter entails solving a set of (non)-linear equations. We extend
uniqueness claims on the solution to the WF equations in setups with multiple
fixed-pressure nodes and detailed pump models. For networks without pumps, the
WF solution is already known to be the minimizer of a convex function. The
latter approach is extended to networks with pumps but not in cycles, through a
stitching algorithm. For networks with non-overlapping cycles, a provably exact
convex relaxation of the pressure drop equations yields a mixed-integer
quadratically-constrained quadratic program (MI-QCQP) solver. A hybrid scheme
combining the MI-QCQP with the stitching algorithm can handle WDS with
overlapping cycles, but without pumps on them. Each solver is guaranteed to
converge regardless of initialization, as numerically validated on a benchmark
WDS.
