Draft:PreCICE (software)

  • Comment: More of a howto or manual than an encyclopedia article. All external links and most of the examples/guides, if not all, will need to be removed from the article text. This should be an article about the software, not a guide to using it. Seraphimblade Talk to me 01:15, 14 February 2025 (UTC)


preCICE
Developer(s)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.2.0[2] Edit this on Wikidata / 1 April 2025
Repository
Written inC++
Operating systemLinux, macOS, Windows[3], FreeBSD[4]
PredecessorFSI*ce[5]
Available inEnglish
Typesimulation software, multiphysics simulation, multiscale simulation
LicenseLGPL-3.0-or-later
Websiteprecice.org Edit this on Wikidata

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.

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.

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.

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.

Common applications include studies of fluid-structure interaction, conjugate heat transfer, hemodynamics, muscle-tendon systems, geothermal energy, porous media flow, and more[6]).

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

History

[edit]

Early years

[edit]

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

preCICE v1

[edit]

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).[7]

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

preCICE v2

[edit]

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[6]. 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

[edit]

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[8], 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.[9], and multiscale simulations[10]

Coupled codes

[edit]

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[6] and can be maintained by the preCICE developers or third parties.

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

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

See also

[edit]

TODO: Placeholder for new references [12] [13]

References

[edit]
  1. ^ a b 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.2.0". 1 April 2025. Retrieved 27 April 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. ^ a b "Software Developments - Chair of Scientific Computing". Technical University of Munich. Retrieved 5 November 2024.
  6. ^ a b c d 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.
  7. ^ 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.
  8. ^ 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.
  9. ^ 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.
  10. ^ 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.
  11. ^ "preCICE website - Overview of adapters". Retrieved 7 November 2024.
  12. ^ "More computing power, more problems (to solve!)". Science Node. 9 March 2018. Retrieved 26 December 2022.
  13. ^ 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.