Optimization in Water Resources Engineering (Graduate course)

Course Overview

This course will present the fundamentals of optimization techniques such as non-linear methods, pattern search and genetic algorithms and their applications to various water resources engineering problems. The applications will include optimal operation of multi-objective and multi-reservoir systems, flood control, optimal design of hydraulic structures, optimal design and operation of water distribution systems and pumping stations. The course will primarily use MATLAB along various freely available water resources engineering simulation models.

Syllabus 2020

Lecture Notes


Filled Notes

Overview of optimization in Water Resources Engineering

Overview of Classical Optimization

Overview of Heuristic Optimization

Simplified Applications in Water Resources Engineering

Multi-objective optimization

Genetic Algorithms

Application of optimization techniques to hydropower operation

Application of optimization techniques to flood control

Python Scripts for Acquiring Rainfall Forecasts, Plotting and Converting Data to DSS




Homework 1

Homework 2

Homework 3

Homework 4

Semester Project

Codes/Softwares of interest for the Course


Software Name/Link


EPA' Stormwater Management Model (SWMM) is used for simulations of water runoff quantity and quality in primarily urban areas. This model has been used for planning, analysis, and design related to stormwater runoff, combined and sanitary sewers, and other drainage systems.

Storm Water Management Model (SWMM)


HEC-HMS simulates the complete hydrologic processes of dendritic watershed systems. Advanced capabilities are provided for gridded runoff simulation using the linear quasi-distributed runoff transform (ModClark).



Perform one-dimensional steady flow, one and two-dimensional unsteady flow calculations, sediment transport/mobile bed computations, and water temperature/water quality modeling



Simulate hydraulic and water quality behavior within pressurized pipe networks



Compute flow discharges and pressures in pipe networks including pumps [Matlab]

Pipe networks

Arturo Leon

Determine optimal flow discharge and optimal penstock diameter in impulse and reaction turbines [Matlab]

Hydropower Calculator

Arturo Leon

Analyze transient flows in closed-conduit systems ranging from dry-bed flows to gravity flows, to partly gravity-partly surcharged flows (mixed flows) to fully pressurized flows (waterhammer flows).

Illinois Transient Model

Arturo Leon

Python is a programming language that is developed under an OSI-approved open source license, making it freely usable and distributable, even for commercial use.


Python Software Foundation

MATLAB is a numerical computing environment and proprietary programming language that allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.



Map of people that accessed this website since January 30, 2020