W24-08 Coupling Simulation Codes using preCICE

Instructor(s):  Gerasimos Chourdakis,  University of Stutgart; Ishaan Desai, University of Stuttgart


The preCICE coupling library (https://precice.org/) allows to build complex multi-physics and multi-scale simulations by reusing existing simulation software. The preCICE ecosystem includes ready-to-use integrations for OpenFOAM, deal.II, FEniCS, Nutils, CalculiX, SU2, and more, while the minimally-invasive library approach allows to couple new codes with minimal effort, using the high-level API in C++, C, Fortran, Python, Julia, or Matlab. Common application examples include fluid-structure interaction and conjugate heat transfer, while a large community is nowadays using preCICE for a wide range of applications spanning from biomedical and aerospace to energy and ice sheet simulations. A dedicated preCICE Minisymposium at the conference will showcase some examples.

This hands-on training course, normally offered in the yearly preCICE workshops in Germany, will introduce users to the basic concepts of preCICE and let the participants couple two simple Python-based codes from scratch. Participants will also learn useful tools for configuration, post-processing, and debugging of coupled simulations. Finally, participants will explore advanced coupling algorithms and further unique features of preCICE in a conjugate heat transfer scenario, coupling OpenFOAM and Nutils.

Live USB sticks with preCICE and all other necessary tools for the course will be available, as well as a virtual machine image as an alternative. Besides a laptop, no further preparation is required.


Note: All parts are hands-on and self-paced. Joining and breaks are possible at any time.

08:30 - 09:00 Setting up: Bringing everyone's laptop up to speed.

              Unless you already have all dependencies up and running (i.e., you can run one of the preCICE tutorials),
              make sure to attend this part. We will have some Live USB sticks with Ubuntu (x86-64) with everything installed,
              but they might not work for everyone. See more preparation details on https://precice.org/community-training.html
              and contact gerasimos dot chourdakis at ipvs.uni-stuttgart.de in case of doubt.

09:00 - 09:30 Introduction to preCICE and the course

              An executive summary of what preCICE is and what you need to know before diving into this course.

09:30 - 11:30 Part I: Basics

              We couple two simple Python codes, discussing the basic methods of the preCICE API.

11:30 - 12:00 Part II: Tools

              We take a tour over available tools to configure, understand, and post-process preCICE simulations. More specifically, we have a look at the preCICE logger, config visualizer, mesh exports, and watchpoints of preCICE. We also discuss common tips for visualizing partitioned simulations in ParaView.

12:00 - 13:00 Lunch break

13:00 - 14:00 Part II: Tools

              Continuing from the morning session, but feel free to join late (the content is self-paced).

14:00 - 16:15 Part III: Implicit coupling

              We use a conjugate heat transfer scenario coupling OpenFOAM with Nutils to study implicit coupling, including acceleration methods.

16:15 - 16:30 Wrap-up