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.