1 Modern Simulation Software Development
Summer 2026 · ACoM · RWTH Aachen University

A course for graduate students (e.g., master program in CES, SiSc, Math, Physics, etc.) on development of modern numerical software for simulation of complex engineering problems.
Lecturers: Dr. Lambert Theisen & Dr. Georgii Oblapenko
ECTS: 5 · Format: 2SWS lecture + 1SWS tutorial (tutorials merged to 2SWS slots every other week, 1SWS=45mins/week)
Registration: Opens 11 March 2026 via RWTHOnline (course 11.00153)
Module: Current Topics in Computational Science and Engineering (Aktuelle Themen in Computational Science and Engineering)
1.1 Goals & Topics
Advanced numerical methods for solving PDEs are presented and discussed, along with aspects of efficient numerical software design, focusing on robustness, accuracy in large-scale simulations, and reproducible research. Students gain insight into how modern simulation software is designed, implemented, and validated for real-world scientific and engineering applications.
Topics include (among others):
- Finite difference methods
- Finite element and discontinuous Galerkin methods
- Iterative solvers
- Particle-based methods
- Introduction to uncertainty quantification
1.2 Lectures
| # | Topic | Notes | Slides | Date |
|---|---|---|---|---|
| 1 | Introduction | Notes | Slides | 15.4.2026 |
| 2 | Introduction to the Finite Element Method | Notes | Slides | 22.4.2026 |
| 3 | FEM II: nonlinear Poisson, Stokes with heat transport, eigenvalue problems | Notes | Slides · Notebook | 29.4.2026 |
| 4 | FEMI: Time, Preconditioners, PETSc | Notes | Slides | 6.5.2026 |
| 5 | Timestepping methods | Notes | Slides · Notebook | 13.5.2026 |
| 6 | Finite Volume Methods | - | - | 20.5.2026 |
| 7 | DG Methods: Introduction | - | - | 3.6.2026 |
| 8 | DG Methods: DGSEM, Entropy-stable methods | - | - | 10.6.2026 |
| 9 | Particle-based methods: SPH, Vortex methods | - | - | 17.6.2026 |
| 10 | Particle-based methods: DSMC | - | - | 24.6.2026 |
| 11 | Guest lecture | - | - | 1.7.2026 |
| 12 | Uncertainty quantification, sensitivity analysis | - | - | 8.7.2026 |
1.3 Exercises
| # | Topic | Topics | Date |
|---|---|---|---|
| 1 | Introduction (Shell, Git, Finite Difference, Repo Template) | Shell, Git, Finite Difference and Repo Structure | 21.4.2026 |
| 2 | FEniCSx/Gmsh project preparation, post-processing | Gmsh geometry and boundary tags, FEM, Paraview | 05.05.2026 |
1.4 Projects
| # | Topic | Sheet | Deadline | Submission |
|---|---|---|---|---|
| 0 | Finite Differences | Project 00 (example) | - | 21.4.2026 |
| 1 | Open FEM Project with FEniCSx | Notes · Slides · PDF · Notebook | 01.06.2026 (end of date) | Via Moodle as Link to repo and PDF |
1.5 Skills
| # | Topic | Notes |
|---|---|---|
| 1 | Bash for Simulation Workflows | Skills 01 |
| 2 | Git for Simulation Software Development | Skills 02 |
| 3 | Gmsh Geometry for FEM | Skills 03 |
| 4 | Paraview for FEM Output | Skills 04 |
1.6 Local Installation and Execution
The local workflow below uses the FEniCSx/DOLFINx stack used by Lecture 03 and Project 01: dolfinx 0.10.x, PETSc, Gmsh, Jupyter, and Quarto.
1.6.1 1. Create local conda environment
conda create -n fenicsx010 --override-channels -c conda-forge -y \
python=3.12 fenics-dolfinx=0.10.0 ipykernel pyyaml matplotlib gmshIf the conda solve does not provide the Python gmsh or pyvista[jupyter] module on your platform, install it with pip inside the environment:
conda run -n fenicsx010 python -m pip install --no-cache-dir gmsh pyvista[jupyter]1.6.2 2. Register Jupyter kernel for Quarto
Quarto notebooks in this repo use jupyter: fenicsx, so register that kernel name:
conda run -n fenicsx010 python -m ipykernel install --user \
--name fenicsx --display-name "Python (fenicsx 0.10.0)"1.6.3 3. Install Quarto (if needed)
Check if Quarto is available:
quarto --versionIf not installed, follow the official instructions: - https://quarto.org/docs/get-started/
1.6.4 4. Render the site locally
quarto renderOutput is written to: - _site/index.html
The site render includes Quarto notebooks such as:
lectures/03.ipynb, producing notes, RevealJS slides, PDF, and a copied notebook resource.exercises/01-fem.ipynb, producing01-fem-notes.html,01-fem-slides.html,01-fem.pdf, and a copied notebook resource.
To render only the current FEM project sheet:
quarto render exercises/01-fem.ipynb1.6.5 5. Render the combined manuscript PDF
To build the book-like combined PDF with syllabus, lecture notes, exercises, and skills:
quarto render --profile manuscript --to pdfOutput is written to: - manuscript/_book/mssd.pdf
1.6.6 6. Quick sanity checks
conda run -n fenicsx010 python -c "import dolfinx, gmsh, petsc4py, mpi4py; print(dolfinx.__version__)"You should see DOLFINx 0.10.0.