A Julia/JuMP Package for Water Distribution Network Optimization
59 Stars
Updated Last
10 Months Ago
Started In
May 2017


WaterModels Logo

Latest Documentation Status Development Build Status Code Coverage Status

WaterModels.jl is a Julia/JuMP package for steady state water network optimization. It is designed to enable computational evaluation of historical and emerging water network formulations and algorithms using a common platform. The code is engineered to decouple problem specifications (e.g., network design, optimal water flow) from network optimization formulations (e.g., mixed-integer linear, mixed-integer nonlinear). This decoupling enables the definition of a wide variety of optimization formulations and their comparison on common problem specifications.

Core Problem Specifications

  • Water Flow (wf and mn_wf) - obtain feasible flows and heads for a network
  • Optimal Water Flow (owf and mn_owf) - minimize the cost of network operation
  • Network Design (des) - minimize the cost of network design

Core Network Formulations

  • NC - nonconvex nonlinear formulation
  • NCD - nonconvex nonlinear direction-based formulation
  • CRD - continuous (convex) relaxation- and direction-based formulation
  • LRD - linear relaxation- and direction-based formulation
  • PWLRD - piecewise linear relaxation- and direction-based formulation
  • LA - linear approximation-based formulation


The package documentation includes a quick start guide. Be advised that aside from the quick start guide, documentation is under development and may currently be inaccurate.


Community-driven development and enhancement of WaterModels is welcomed and encouraged. Please feel free to fork this repository and share your contributions to the master branch with a pull request. That said, it is important to keep in mind the code quality requirements and scope of WaterModels before preparing a contribution. See CONTRIBUTING.md for code contribution guidelines.


This work is currently supported by the Advanced Grid Modeling Program within the U.S. Department of Energy under the project "Coordinated Planning and Operation of Water and Power Infrastructures for Increased Resilience and Reliability." Work at Los Alamos National Laboratory is conducted under the auspices of the National Nuclear Security Administration of the U.S. Department of Energy under Contract No. 89233218CNA000001. Previous work was supported by the Los Alamos National Laboratory Directed Research and Development program under the project "Adaptation Science for Complex Natural-engineered Systems" (20180033DR). It is also supported by the Advanced Network Science Initiative at Los Alamos National Laboratory.

The primary developer is Byron Tasseff with support from the following contributors:


This code is provided under a modified BSD license as part of the Multi-Infrastructure Control and Optimization Toolkit (MICOT), LA-CC-13-108.