FEniCS-preCICE: Coupling FEniCS to other simulation software

Ishaan Desai (University of Stuttgart, 🇩🇪)
Benjamin Rodenberg (Technical Universiy of Munich, 🇩🇪)
Richard Hertrich (Technical University of Munich, 🇩🇪)
Alexander Jaust (University of Stuttgart, 🇩🇪)
Benjamin Uekermann (University of Stuttgart, 🇩🇪)
Thursday session 1 (Zoom) (13:00–14:40 GMT)
View slides (pdf) (available under a CC BY 4.0 license)

FEniCS-preCICE facilitates coupling of FEniCS with other software codes using the coupling library preCICE. preCICE enables users to couple different solvers in a partitioned black-box fashion. This talk explains various features of preCICE and its usage. Only a few additional lines of code are necessary to prepare a FEniCS program script for coupling.

FEniCS-preCICE acts as a middle software layer which helps to connect a high-level FEniCS program to the low-level API of preCICE. The package converts between FEniCS and preCICE data structures, provides easy-to-use coupling conditions, and manages checkpointing for implicit coupling. FEniCS-preCICE is able to handle distributed memory parallelization of FEniCS internally. This package is a library itself and follows a FEniCS-native style.

The functionality of FEniCS-preCICE is illustrated by two examples of coupled problems in fluid-structure interaction: a FEniCS heat conduction program coupled to OpenFOAM and a FEniCS elastic solid mechanics program coupled to SU2. In both examples FEniCS is used to solve the solid part of the fluid-solid coupling. The results of both examples are compared with other simulation software showing good agreement. preCICE and FEniCS-preCICE are available under open-source licenses on GitHub.


  • [1] Benjamin Rodenberg, Ishaan Desai, Richard Hertrich, Alexander Jaust, and Benjamin Uekermann. FEniCS-preCICE: Coupling FEniCS to other simulation software, arΧiv: 2103.11191.