Course Description
The purpose of this course is to provide graduate students with a set of modelling skills to allow them to develop their own numerical models to solve a range of hydrological and hydrogeological problems. The course requires a basic understanding of hydrological processes and/or groundwater flow and transport processes. A particular set of numerical methods for solving partial differential equations are introduced to the student. Models are written in Python. Specific applications include models for rainfall-runoff simulation, water supplies in aquifers, contamination in aquifers, and water and energy balances in soils. The course will require all students to undertake a number of common activities, covering the core-content. This includes hydrological models and simple groundwater flow models (1D transient, 2D steady-state). There is additional optional content that covers unsaturated flow and contaminant transport. The final assignment will be tailored to individual students interests, and may require some students to cover the optional material. This will also provide the student with an appreciation of how widely used commercial and non-commercial software (such as USGS MODFLOW) works and can be used effectively. The models help the student to think through the physical processes and interpret field data. The course also aims to provide the student with an ability to critically assess results from modelling studies which they will be faced with throughout their career.
Course Learning Outcomes
Given a conceptual model of how water and a solute moves through some component of the hydrological cycle, students will learn to:
- Develop a set of governing partial differential equations and boundary conditions;
- Develop a numerical approximation to these coupled equations using a finite difference approach;
- Implement this numerical solution in a computer program;
- Recognize assumptions within models and critically interpret model results
Pre-requisites
Permission of Instructor. In anticipation of the fact that students taking this class will be from a diverse set of backgrounds, eligibility for enrollment in this class is to be determined on a case by case basis between the instructor and the student. The following prerequisites are to be considered a guideline:
- The student should have previously taken a course which covers groundwater or hydrology or another similar quantitative environmental discipline.
- Experience with any programming language is desirable (at a minimum, the student must have used Excel or similar for performing calculations).
- A fairly high standard of mathematics is required, in particular basic calculus. If the student does not have an Engineering background, this must be demonstrated to the instructor prior to enrollment.
Instructor Information
Andrew Ireson is the Director of the MWS program and an Associate Professor in subsurface hydrology in the School for Environment and Sustainability and Global Institute for Water Security. Andrew's research group are working on improving models for flow of water through soils, wetlands and groundwater, focusing particularly on the Canadian prairies and boreal forest. You can read more about the team and our research here.
Required Resources
Readings/Textbooks
All essential materials for this course are provided in the canvas course materials. Recommended additional readings/learning resources are listed below – you do not need to review everything here, but pick and choose what works for you to understand the concepts and methods:
- Research Software Engineering with Python, Irving et al., 2021. (Freely available at: https://third-bit.com/py-rse/)
- Python reference documentation (https://docs.python.org/3/reference/)
- Learn Python the Hard Way: Command line course (https://learnpythonthehardway.org/python3/appendixa.html)
- Learn Python the Hard Way: Python course (https://learnpythonthehardway.org/python3/)
- Beven, K, 2001, Rainfall runoff modelling the primer. Wiley.
- Bear, J, 1988. Dynamics of fluids in porous media. Dover publications.
- Domenico and Schwartz, 1998. Physical and chemical hydrogeology. Wiley New York.
- Fetter, C W, 1994. Applied Hydrogeology. Macmillan College.
- Fetter, C W, 1999. Contaminant Hydrogeology. Prentice Hall.
Software
Students will need to have a laptop on which they can install various open source software, all of which can be downloaded for free. The software can be run from a Windows, Mac or Linux computer – you will need to have installation privileges on your computer to do this. Note that you will not be able to run the software on a tablet/iPad or chromebook. If you do not have a laptop available, let the instructor know at the start of the course. Full instructions for obtaining and installing the software will be provided in the first session.
Class Schedule
Session | Lecture (flipped – view at home) | Tutorial activities (In class) |
---|---|---|
01 |
Introduction to modelling |
Motivation for using a scripting language – what you can and cannot do in Excel. Introduction to the software used in this class. Troubleshooting installation of software on laptops. |
02 |
No lecture |
Introduction to programming concepts using the python programming language. Plotting data with numpy/matplotlib. Exercises. |
03 |
Solving differential equations – modelling ponds |
More programming basics and exercises. |
04 |
Hydrological modelling |
Exercises: Analytical and numerical solutions for a simple bucket model. |
05 |
Groundwater processes |
Lab demonstrations: hydraulic head, hydraulic conductivity, specific yield. A model of the permeameter. |
06 |
Steady-state groundwater flow |
Exercises: Modelling steady-state confined and unconfined aquifers. |
07 |
Transient groundwater flow I |
Exercises: Modelling steady-state confined and unconfined aquifers. |
08 |
Transient groundwater flow II |
Exercises: Block centred grids and ODE solvers |
09 |
No lecture |
Modelling the model aquifer (Assignment 2 activity) |
10 |
Calibration and |
Catching up |
11 |
Optional lecture material* |
Class Activity: Modelling the OJP Field site. |
12 | Optional lecture material* | Working on final assignment |
13 | Course summary | Working on final assignment |
10 sessions (3 hours each)
10 hours of offline lectures (*2 hours of optional lectures, dependent on interests and level)
22 hours of interactive computer lab sessions (instructor is actively engaging with students individually and as a class, giving worked examples)
8 hours of practical laboratory experiment
Evaluations and Grading Scheme
This course combines lectures with applied learning, focusing on the development of computer programs. Assessment is by exercises, assignments a website and an interview, as detailed in the table below:
Assessment Activity | Marks |
---|---|
Exercises (3) | 10 |
Website | 5 |
Interview | 5 |
Assignment #1 | 15 |
Assignment #2 | 15 |
Assignment #3 | 50 |
Exercises
In each session the student will be given exercises which will be worked on in the practical sessions and in the students own time. The students’ performance in these exercises will account for 10% of the total mark. High marks will be given for independence, efficiency, competence and addressing the exercises critically. Poor marks will be given for over reliance on assistance and a failure to engage with the material.
Assignments
Three pieces of coursework, in the form of written reports, will make up the remainder of the course assessment, with AC1 = 15%, AC2 = 15% and AC3 = 50%. The first two pieces of coursework involve modifying some script to solve some applied problem, and writing up the results in a brief report. The first assignment is based on a hypothetical problem, given in the class. The second assignment is based on a laboratory experiment. These are both marked out of 15, as follows:
- introduction demonstrating an understanding of the problem (3 marks),
- completed Python script that can be run by the instructor successfully, and is the students own work (4 marks),
- clear comment lines in the script (1 marks),
- appropriate and high quality figures (4 marks),
- discussion and conclusions (3 marks).
For the final piece of coursework, the student is given a conceptual model, and must develop a set of governing equations, develop a numerical model, write a Python script from scratch. The script will be applied to solve an environmental contamination problem. This will be marked out of 50, as follows:
- introduction demonstrating an understanding of the problem (5 marks),
- derivation of the governing equations (8 marks),
- description of the numerical model (8 marks),
- completed Python script that can be run by the instructor successfully, and is the students own work (14 marks),
- clear comment lines in the script (2 marks),
- appropriate and high quality figures (5 marks),
- discussion and conclusions (8 marks).
Website
All of the assignments will be presented on a simple website (full instructions will be provided). The quality of presentation on the website is work 5% of the grade in this class. Good marks are available for a clear, well structured website, with images embedded, links that work and good English. Poor marks will be given for a messy website with dead-links, images that don’t render and poor English.
Interview
Finally, towards the end of the class interviews will be conducted with each student by the instructor. This is to ensure that the students have understood what they have done, and have carried out the coding work themselves. The instructor will use this to ask students about specific tasks they have completed, and will also give the students feedback at this time. This is worth 5% of the final grade. Good marks will be awarded for demonstrating good understanding of the concepts and methods covered in this class.
Mid-term Exam(s) and Final Exam
There are no exams in this class.