Jump to content

Draft:preCICE (software)

From Wikipedia, the free encyclopedia
preCICE
Developer(s)University of Stuttgart, Technical University of Munich, and the preCICE community
Initial releaseJune 1, 2010; 14 years ago (2010-06-01)[1]
Stable release
3.1.2[2] Edit this on Wikidata / 6 June 2024
Repository
Written inC++
Operating systemLinux, macOS
PredecessorFSI*ce[3]
Typesimulation software, fluid structure interaction
LicenseLGPL-3.0-or-later
Websiteprecice.org Edit this on Wikidata

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]

Language bindings

[edit]

The native API of preCICE is written in C++. Language bindings for C and Fortran are compiled into the preCICE library itself.

The following language bindings are available externally:

Language Repository License Published
Python github.com/precice/python-bindings LGPL-3.0-or-later PyPi
Fortran github.com/precice/fortran-module LGPL-3.0-or-later
Rust github.com/precice/rust-bindings LGPL-3.0-or-later crates.io
Julia github.com/precice/PreCICE.jl LGPL-3.0-or-later
Matlab github.com/precice/matlab-bindings LGPL-3.0-or-later

Example

[edit]
import precice

Configuration

[edit]

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]

References

[edit]
  1. ^ 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.
  2. ^ "Release 3.1.2". 6 June 2024. Retrieved 24 June 2024.
  3. ^ "Software Developments - Chair of Scientific Computing". Technical University of Munich. Retrieved 5 November 2024.
  4. ^ 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.
  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). doi:10.12688/openreseurope.14445.2.
  6. ^ 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.
  7. ^ a b "preCICE website: Overview of adapters".