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
- Host: GitHub
- URL: https://github.com/ray-chew/mmidk
- Owner: ray-chew
- License: apache-2.0
- Created: 2024-03-19T14:40:29.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-20T16:45:16.000Z (about 1 year ago)
- Last Synced: 2025-01-11T13:54:45.334Z (4 months ago)
- Topics: burgers-equation, finite-difference-method, finite-volume-method, heat-equation, python, scientific-computing, shallow-water-equations, tutorial-course
- Language: Jupyter Notebook
- Homepage:
- Size: 42.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)