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 gmsh

If 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 --version

If not installed, follow the official instructions: - https://quarto.org/docs/get-started/

1.6.4 4. Render the site locally

quarto render

Output 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, producing 01-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.ipynb

1.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 pdf

Output 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.