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
andmn_wf
) - obtain feasible flows and heads for a network - Optimal Water Flow (
owf
andmn_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:
- Clayton Barrows, National Renewable Energy Laboratory
- Russell Bent, Los Alamos National Laboratory
- Carleton Coffrin, Los Alamos National Laboratory
- Donatella Pasqualini, Los Alamos National Laboratory
- Devon Sigler, National Renewable Energy Laboratory
- Jonathan Stickel, National Renewable Energy Laboratory
This code is provided under a modified BSD license as part of the Multi-Infrastructure Control and Optimization Toolkit (MICOT), C15024.