This website includes slides, tutorial sheets and solutions for the various courses I teach at Brunel University and Imperial College London.

Finite Element Analysis, Masters Level

A masters level course on finite element analysis (FEA) teaching students to write a 2D FEA solver from scratch. Lectures from 2019 are available:

Applied Fluid Mechanics and CFD, Third Year

A course which teaches students further fluid mechanics theory how to solve problems with Computational Fluid Dynamics (CFD). My lectures cover the fundamental equations of fluid dynamics in both integral and differential form, an overview of partial differential equations with some simple analytical solutions before explaining how to apply numerical techniques.

Programming, Second Year

A course which aims to teach best practice in engineering programming. This covers basic programming in MATLAB (loops, branching, flow control), functions, best-practice software design. Applications include interpolation with Newton's divided difference and Lagrange polynomials, root finding, numerical integration and solving differential equations in 1D and 2D.

Aerodynamics and CFD, Second Year

A second year course at Brunel on Aerodynamics with an introduction to fluid dynamics. We cover the fundamental equations of aerodynamics, turbulence and transition, boundary layer theory, finite aerofoil theory, horseshoe vortices with Biot-Savart Law and supersonic flow.

A Complete 1D Navier-Stokes Solver on one page. A Jupyter notebook to explain the complete discretisation of the Navier Stokes equations in 1D, explaining in the simplest possible case (1D) case how we can discretise our equations, issues with oscillations, 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 teach. This is 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:

The content includes:

and the aims for the course were as follows:


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.

Feedback from the course was very positive, summarised here, although given the large volume of material and range of students' backgrounds, many students felt the pace was too fast.

HPC Summer School 2017

Given the interest in this course, I ran again as part of the summerschool. This was split over two days:

Feedback from the course was positive, summarised here. The modular and object oriented approach taught in these course is the basis for open-source visualisation software, pydataview.

Roll Royce 2017

I was employed by Roll Royce to deliver a course over two days at their headquarters in Darsbury back in 2017. The feedback was very positive from this course, with 35 candidates rating the "professional competence of the trainer" as 2.89 out of 3, a rating of 2.7 out of 3 for "how satisfied were you with the organisation of the training" and an "overall rating for the course" of 2.7 out of 3. The full summary is here. Please contact me if out would be interested in organising teaching.