PreCICE (software)

Last updated
preCICE
Developers University of Stuttgart, Technical University of Munich, and the preCICE community
Initial releaseJune 1, 2010;15 years ago (2010-06-01) [1]
Stable release
3.3.0 [2]   OOjs UI icon edit-ltr-progressive.svg / 8 October 2025
Repository
Written in C++
Operating system Linux, macOS, Windows, [3] FreeBSD [4]
PredecessorFSI*ce [5]
Available inEnglish
Type simulation software, multiphysics simulation, multiscale simulation
License LGPL-3.0-or-later
Website precice.org   OOjs UI icon edit-ltr-progressive.svg

preCICE is a free/open-source coupling library for partitioned multi-physics simulations. preCICE is not specific to particular applications or tools, but instead couples independent codes capable of simulating a subpart of the complete physics involved in a simulation.

Contents

A coupled simulation consists on multiple simulation codes calling the preCICE API and a shared configuration file describing the simulation setup. Once launched, the preCICE library establishes connections between the individual simulation codes and coordinates their progression in time until a configured end condition is fulfilled. [6]

preCICE supports nodal data on unstructured meshes, a wide range of interpolation schemes between non-conforming meshes and in time, implicit schemes with various convergence acceleration methods, and support for solvers using MPI parallelization, partially overlapping with features offered by other coupling tools. [7]

The preCICE API is available in C++, with C and Fortran bindings provided as part of the library. External support includes Python, Rust, Julia, and Matlab. [8]

The software originates from a fluid-structure interaction on High-performance computing context. [9] Other common applications include studies of conjugate heat transfer, hemodynamics, muscle-tendon systems, geothermal energy, porous media flow, and more [8] ).

Overview of the preCICE coupling library (as of 2024), including the main concepts, features, and examples of codes already coupled. Precice-overview.png
Overview of the preCICE coupling library (as of 2024), including the main concepts, features, and examples of codes already coupled.

History

Early years

The name "preCICE" (precise code interaction coupling environment) appears in literature first in 2010. [1] preCICE is a direct successor of FSI*ce, developed at the Technical University of Munich, which mainly targeted fluid-structure interaction simulations. [5] FSI*ce was a result of a German Research Foundation project in the Research Group Fluid-Structure Interaction: Modelling, Simulation, Optimisation (FOR493). [10]

preCICE v1

In May 2015, the development of preCICE was moved to its own organization on GitHub. The first stable version v1.0.0 of the core library was released in November 2017.

preCICE v1 included a variety of coupling schemes (explicit and implicit, Aitken underrelaxation, Anderson and Broyden quasi-Newton acceleration algorithms), data mapping methods (nearest-neighbor, nearest-projection, RBF), and communication methods (TCP/IP sockets, MPI ports). [6]

The v1.x release cycle saw releases until v1.6.1, in September 2019.

preCICE v2

By 2020, the preCICE project saw development in different directions: extensive refactoring and testing of the core library, large expansion of the available documentation, development of several new adapters and several community building measures. [8] Several of these changes are connected to the acceptance of preCICE into the extreme-scale scientific software development kit (xSDK). Due to increased number of components, the preCICE distribution was introduced as a citable bundle of components working together.

The v2.x release cycle saw releases until v2.5.1, in January 2024.

preCICE v3

preCICE v3.0.0 was released in February 2024. Notable changes of v3 include simplifications in the API and configuration, multirate and higher-order time stepping, [11] and faster RBF mapping based on a partition of unity approach.

At the time of the v3 release cycle, the project has expanded from targeting mainly surface coupling to also targeting volume coupling (overlapping domains, see domain decomposition methods), geometric multiscale mapping, system codes implementing the Functional Mock-up Interface., [12] and multiscale simulations [13]

Coupled codes

While preCICE is a software library with an API that can be used by programmers to couple their own code, there exist several integrations with several simulation codes, making preCICE more accessible to end users that are not primarily programmers (such as applied mathematicians, mechanical engineers, or climate scientists).

In the terminology used by preCICE, the integrations to simulation codes are called adapters [8] and can be maintained by the preCICE developers or third parties.

Example codes that preCICE integrates with via adapters include, [14] among others:

The community has also coupled [8] CAMRAD II, DLR TAU, DUST, DuMuX, Rhoxyz, Ateles, XDEM, FLEXI, MBDyn, OpenFAST, LS-DYNA, and G+Smo.

See also

References

  1. 1 2 Gatzhammer, Bernhard; Mehl, Miriam; Neckel, Tobias (June 2010). "A coupling environment for partitioned multiphysics simulations applied to fluid-structure interaction scenarios". Procedia Computer Science. 1 (1). Elsevier: 681–689. doi: 10.1016/j.procs.2010.04.073 .
  2. "Release 3.3.0". 8 October 2025. Retrieved 13 October 2025.
  3. "MSYS2 Packages - Package: mingw-w64-x86_64-precice" . Retrieved 7 November 2024.
  4. "FreeBSD Git repositories - root/science/precice/Makefile" . Retrieved 7 November 2024.
  5. 1 2 "Software Developments - Chair of Scientific Computing". Technical University of Munich. Retrieved 5 November 2024.
  6. 1 2 Hans-Joachim Bungartz; Florian Lindner; Bernhard Gatzhammer; Miriam Mehl; Klaudius Scheufele; Alexander Shukaev; Benjamin Uekermann (2016). "preCICE – A fully parallel library for multi-physics surface coupling". Computers & Fluids. 141: 250–258. doi:10.1016/j.compfluid.2016.04.003. ISSN   0045-7930.
  7. 1 2 Rubin, Philippa (2022). Comparison of Code Coupling Libraries for High Performance Multi-Physics Simulation (Report). UK Science and Technology Facilities Council. doi: 10.5286/dltr.2022001 .
  8. 1 2 3 4 5 Chourdakis G.; Davis K.; Rodenberg B.; Schulte M.; Simonis F.; Uekermann B.; Abrams G.; Bungartz HJ.; Cheung Yau L.; Desai I.; Eder K.; Hertrich R.; Lindner F.; Rusch A.; Sashko D.; Schneider D.; Totounferoush A.; Volland D.; Vollmer P.; Koseomur OZ. (2022). "preCICE v2: A sustainable and user-friendly coupling library [version 2; peer review: 2 approved]". Open Research Europe. 2 (51): 51. doi: 10.12688/openreseurope.14445.2 . PMC   10446068 . PMID   37645328.
  9. "More computing power, more problems (to solve!)". Science Node. 9 March 2018. Archived from the original on 26 December 2022. Retrieved 26 December 2022.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  10. "DFG - GEPRIS - FOR 493: Fluid-Structure Interaction: Modelling, Simulation, Optimisation".
  11. Rüth, Benjamin; Uekermann, Benjamin; Mehl, Miriam; Birken, Philipp; Monge, Azahar; Bungartz, Hans-Joachim (2020). "Quasi-Newton Waveform Iteration for Partitioned Surface-Coupled Multi-Physics Applications". International Journal for Numerical Methods in Engineering. 122 (19): 5236–5257. doi: 10.1002/nme.6443 .
  12. Willeke, Leonard; Schneider, David; Uekermann, Benjamin (2023). "A preCICE-FMI Runner to Couple FMUs to PDE-Based Simulations". In Müller, Dirk; Monti, Antonello; Benigni, Andrea (eds.). Proceedings 15th Intern. Modelica Conference. Linköping Electronic Conference Proceedings.
  13. Desai, Ishaan; Scheurer, Erik; Bringedal, Carina; Uekermann, Benjamin (2023). "Micro Manager: a Python package for adaptive and flexible two-scale coupling". Journal of Open Source Software. 8 (91). The Open Journal: 5842. Bibcode:2023JOSS....8.5842D. doi: 10.21105/joss.05842 .
  14. "preCICE website - Overview of adapters" . Retrieved 7 November 2024.