An open API service indexing awesome lists of open source software.

https://github.com/ray-chew/mmidk

Course material I created for the tutorial "Mathematical Modelling in Climate Research" at the Freie Universität Berlin
https://github.com/ray-chew/mmidk

burgers-equation finite-difference-method finite-volume-method heat-equation python scientific-computing shallow-water-equations tutorial-course

Last synced: 3 months ago
JSON representation

Course material I created for the tutorial "Mathematical Modelling in Climate Research" at the Freie Universität Berlin

Awesome Lists containing this project

README

        

# Mathematische Modellierung in der Klimaforschung
This repository contains the course material I created as a voluntary lecturer for the tutorial *Mathematical Modelling in Climate Research* at the Freie Universität Berlin. The `.tex` files used to generate the lecture notes are available upon request.

## Course outline
| week | content | exercise | Python crash course |
|:-----------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| [w0](https://github.com/ray-chew/mmidk/tree/master/w0) | [an introduction to Git](https://github.com/ray-chew/mmidk/blob/master/w0/notes.pdf) | | |
| [w1](https://github.com/ray-chew/mmidk/tree/master/w1) | [introduction to numerics with a simple harmonic oscillator](https://github.com/ray-chew/mmidk/blob/master/w1/oscillator.ipynb) | Using `scipy.integrate.odeint` [[solution](https://github.com/ray-chew/mmidk/blob/master/w1/oscillator_soln.ipynb)] | [functions and lists](https://github.com/ray-chew/mmidk/blob/master/w1/functions_and_lists.ipynb) |
| [w2](https://github.com/ray-chew/mmidk/tree/master/w2) | [discretising the simple harmonic oscillator; numerical stability](https://github.com/ray-chew/mmidk/blob/master/w2/discrete_oscillator.ipynb) | [discretising and solving the Lotka-Volterra equations](https://github.com/ray-chew/mmidk/blob/master/w2/w2_ex4.pdf) [[solution]](https://github.com/ray-chew/mmidk/blob/master/w2/discrete_oscillator_soln.ipynb) | [for loops and list comprehension](https://github.com/ray-chew/mmidk/blob/master/w2/for-loops_and_list_comprehensions.ipynb) |
| [w3](https://github.com/ray-chew/mmidk/tree/master/w3) | [order of accuracy and convergence; error analysis](https://github.com/ray-chew/mmidk/blob/master/w3/orders_and_errors.ipynb) | | |
| [w4](https://github.com/ray-chew/mmidk/tree/master/w4) | [discretising and solving the heat equation](https://github.com/ray-chew/mmidk/blob/master/w4/heat_eqn.ipynb) | implement an [FTCS scheme](https://en.wikipedia.org/wiki/FTCS_scheme) [[solution](https://github.com/ray-chew/mmidk/blob/master/w4/heat_eqn_soln.ipynb)] | [good programming practices](https://github.com/ray-chew/mmidk/blob/master/w4/good_practices.ipynb) |
| [w5](https://github.com/ray-chew/mmidk/tree/master/w5) | [review of knowledge acquired] | | |
| [w6](https://github.com/ray-chew/mmidk/tree/master/w6) | [conservation laws](https://github.com/ray-chew/mmidk/blob/master/w6/conservation_laws.pdf) | | |
| [w7](https://github.com/ray-chew/mmidk/tree/master/w7) | [Burger's equation](https://github.com/ray-chew/mmidk/blob/master/w7/w7_burgers_eqn.pdf); [finite volume method, Lax-Friedrich, and the CFL condition](https://github.com/ray-chew/mmidk/blob/master/w7/w7.pdf) | [discretising and solving the Burgers' equation](https://github.com/ray-chew/mmidk/blob/master/w7/burgers_eqn.ipynb) [[solution](https://github.com/ray-chew/mmidk/blob/master/w7/burgers_eqn_soln.ipynb)] | |
| [w8](https://github.com/ray-chew/mmidk/tree/master/w8) | [error analysis of the Lax-Friedrich method](https://github.com/ray-chew/mmidk/blob/master/w8/w8_fdm_lxf_error.pdf) | | |
| [w9](https://github.com/ray-chew/mmidk/tree/master/w9) | [using a debugger and profiler](https://github.com/ray-chew/mmidk/blob/master/w9/w9.pdf) | [modularising the exercise from w7](https://github.com/ray-chew/mmidk/tree/master/w9/heat_eqn) | [classes](https://github.com/ray-chew/mmidk/blob/master/w9/classes.ipynb) |
| [w10](https://github.com/ray-chew/mmidk/tree/master/w10) | [shallow water equations; Richtmyer-Lax-Wendroff method](https://github.com/ray-chew/mmidk/blob/master/w10/w10.pdf) | [[final proj.](https://github.com/ray-chew/mmidk/tree/master/w10/swe)] implement the discretised shallow water equations | |
| [w11](https://github.com/ray-chew/mmidk/tree/master/w11) | [dealing with boundary conditions and source terms](https://github.com/ray-chew/mmidk/blob/master/w11/w11_bc_src.pdf) | [[final proj.](https://github.com/ray-chew/mmidk/tree/master/w11/swe)] implement the discretised shallow water equations | |
| [w12-15](https://github.com/ray-chew/mmidk/tree/master/w12) | implement and run the shallow water code; describe the simulation results | [[final proj.](https://github.com/ray-chew/mmidk/tree/master/w12/swe)] implement the discretised shallow water equations | |

## License
The material provided in this repository may be freely used, modified, and distributed, subject to an attribution to this repository.

## References
The material from week ten onwards was adapted from [Paul Connolly's webpage](https://personalpages.manchester.ac.uk/staff/paul.connolly/teaching/practicals/shallow_water_equations.html) on the Shallow Water Equations.

The two textbooks I used extensively in preparing these material were Randall J. LeVeque's
* [Numerical Methods for Conservation Laws](https://link.springer.com/book/10.1007/978-3-0348-8629-1)
* [Finite Volume Methods for Hyperbolic Problems](https://www.cambridge.org/core/books/finite-volume-methods-for-hyperbolic-problems/97D5D1ACB1926DA1D4D52EAD6909E2B9)