Draft:preCICE (software)
Developer(s) | University of Stuttgart, Technical University of Munich, and the preCICE community |
---|---|
Initial release | June 1, 2010[1] |
Stable release | 3.1.2[2]
/ 6 June 2024 |
Repository | |
Written in | C++ |
Operating system | Linux, macOS |
Predecessor | FSI*ce[3] |
Type | simulation software, fluid structure interaction |
License | LGPL-3.0-or-later |
Website | precice |
preCICE (precise code interaction coupling environment) is TODO.
History
[edit]The Technical University of Munich, together with other collaborators, started the German Research Foundation Research Group FOR493 titled "Fluid-Structure Interaction: Modelling, Simulation, Optimisation" in 2003.
The name "preCICE" appears in literature first in 2010[citation needed]. preCICE is a direct successor of a previous tool called FSI*ce (stylized FSI❄ce), developed at the Technical University of Munich, and mainly targeting fluid-structure interaction simulations. preCICE replaced FSI*ce in 2010, which is not developed anymore[citation needed].
In May 2015, the development of preCICE was moved to its own organization on GitHub, which now includes repositories for the core library and several further components of the project. The first stable version of the core library was released in November 2017 (v1.0.0). At that time, the documentation of the project was hosted in a GitHub Wiki. The state of preCICE v1.0.0 is largely as described in what is accepted as "v1 reference paper", published in 2016[4], together with collaborators from the University of Stuttgart. The paper describes the core library, with main features being a variety of coupling schemes (explicit and implicit, Aitken underrelaxation, IQN and IMVJ quasi-Newton algorithms), data mapping methods (nearest-neighbor, nearest-projection, RBF), and communication methods (TCP/IP sockets, MPI ports). The paper also includes a list of coupled codes developed by the authors or collaborators, as well as FSI benchmarks demonstrating numerical accuracy and performance scalability. The v1.x release cycle saw releases until v1.6.1, on September 2019.
preCICE v2[5]
Philosophy
[edit]API
[edit]The native API of preCICE is written in C++. Language bindings for C and Fortran are compiled into the preCICE library itself. Further language bindings are available externally.
Language | Repository | License | Package | Usage |
---|---|---|---|---|
C++ | precice on GitHub | LGPL-3.0-or-later | GitHub Releases | #include<precice/precice.hpp>
precice::Participant p(…);
|
C | #include<precice/preciceC.h>
preciceC_createParticipant(…);
| |||
Fortran | CALL precicef_create(…)
| |||
Python | python-bindings on GitHub | LGPL-3.0-or-later | PyPi | import precice
p = precice.Participant(…)
|
Fortran Module | fortran-module on GitHub | LGPL-3.0-or-later | use precice
CALL precicef_create(…)
| |
Rust | rust-bindings on GitHub | LGPL-3.0-or-later | crates.io | use precice
let mut participant = precice::Participant::new(…);
|
Julia | PreCICE.jl on GitHub | LGPL-3.0-or-later | using PreCICE
PreCICE.createParticipant(…)
| |
Matlab | matlab-bindings on GitHub | LGPL-3.0-or-later | p = precice.Participant(…)
|
Configuration
[edit]Example
[edit]import precice
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. A non-exhaustive list of adapters is available on the preCICE website[7].
Example codes that preCICE integrates with via ready-to-use adapters include[7], among others:
Applications
[edit]See also
[edit]- Multiphysics simulation
- List of numerical analysis software
- List of finite element software packages
- Fluid-structure interaction
- Computer-aided engineering
References
[edit]- ^ 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. Retrieved 5 November 2024.
- ^ "Release 3.1.2". 6 June 2024. Retrieved 24 June 2024.
- ^ "Software Developments - Chair of Scientific Computing". Technical University of Munich. Retrieved 5 November 2024.
- ^ 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.
- ^ 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). doi:10.12688/openreseurope.14445.2.
- ^ Uekermann, Benjamin; Bungartz, Hans-Joachim; Cheung Yau, Lucia; Chourdakis, Gerasimos; Rusch, Alexander (October 2017). "Official preCICE Adapters for Standard Open-Source Solvers" (PDF). Proceedings of the 7th GACM Colloquium on Computational Mechanics for Young Scientists from Academia. Retrieved 5 November 2024.
- ^ a b "preCICE website: Overview of adapters".