Dr Edward Smith
Senior Lecturer in Fluid Dynamics
- Mechanical and Aerospace Engineering
- Mechanical and Aerospace Engineering
- College of Engineering, Design and Physical Sciences
Teaching
A developing idea: a complete 1D Navier-Stokes Solver on one page. Using Jupyter notebook to explain the complete discretisation of the Navier Stokes equations in 1D, explaining the simplest possible case (1D) how we can discretise our equations, issues with osciallations, (eventually) boundary conditions and the fractional step pressure solver.
Multi-Scale Modelling
Here are the notes for the continuum part of the multi-scale modelling course I taught 2017 and 2018. This was for masters students who have a background in a mathematical subject. Slides for the lectures, part one notes and part two notes two, as well as background notes.
The lectures are available:
- Part one video, introduction to the continuum, differential equations and numerical solutions.
- Part two video, review of part one, more differential equations and an overview of the steps which lead the the Navier-Stokes equation.
- A white-board derivation video of the Navier-Stokes equation considering the link to molecular systems.
Python
Intro Course
In order to address the lack of general Python teaching here at Imperial, I put together and gave a three part introduction course through the HPC support here at Imperial. This class was aimed at beginners and also for those who want to switch from Matlab to Python.
- Introduction to Python for scientific computing, 3/3/17 (Video) (Slides) (Solutions)
- Motivation for using Python.
- Introduction to programming in Python
- Python concepts (lists, iterators, etc) and discussion of the differences to other languages.
- Scientific libraries numpy and matplotlib.
- Examples of usage for scientific problems.
- Further details of the Python language, 10/3/17 (Video) (Slides) (Solutions)
- More on Python data structures: concepts like references, immutable, lists, data organisation with Dictionaries and numpy arrays.
- Use of functions and design of interfaces.
- Introduction to classes and objects.
- Structuring a project, importing modules and writing tests.
- Examples of usage for scientific problems.
- Python libraries, 17/3/17 (Video) (Slides) (Solutions)
- Using Python to read files (ascii, binary, hp5) and plot.
- Running parameter studies by calling executables repeatedly with subprocess.
- Designing a basic Graphical User Interface.
- Unit testing frameworks and version control.
- Other libraries and how to wrap your own code from fortran, c++, etc
Further course details are available on my website: