The coupling library for partitioned multi-physics simulations.
preCICE is an open-source coupling library for partitioned multi-physics simulations, including, but not restricted to fluid-structure interaction and conjugate heat transfer simulations.
Partitioned means that preCICE couples existing programs/solvers capable of simulating a subpart of the complete physics involved in a simulation. This allows for the high flexibility that is needed to keep a decent time-to-solution for complex multi-physics scenarios.
The software offers convenient methods for transient equation coupling, communication, and data mapping.
Prepared for the next generation of multi-physics simulations
- Elegant library approach
- High-level API in C++, C, Fortran, Python, Matlab
- Arbitrary combinations of strong and weak interactions
- Arbitrary many solvers
- Robust quasi-Newton acceleration
- Radial-basis function data mapping
- Pure peer-to-peer approach
- Support of heterogenous hardware (CPU/GPU)
- Efficient also on a laptop
What our community is saying
University of the Free State, Department of Cardiothoracic Surgery, South Africa
Aerodynamics, Faculty of Aerospace Engineering, TU Delft, The Netherlands
—Marta Camps Santasmasas
Aerodynamics research group, MACE, The University of Manchester, UK
Academic at heart, 100% free software
preCICE has been developed by three generations of doctoral candidates from the Chair of Scientific Computing at the Technical University of Munich and from the Institute for Parallel and Distributed Systems at the University of Stuttgart. We develop everything openly on GitHub, the preCICE library is licensed under LGPLv3, and every other component is developed under compatible free software licenses.
You can cite the preCICE library using the following paper. Please also consider citing the adapters you use, as well as the preCICE Distribution for reproducibility. You can find the respective references in our literature guide.
Join the community!
We develop everything in the open, with continuous feedback by a vivid community. Be part of it:
- Ask for help and help others in the preCICE forum and register to receive news.
- Directly edit the documentation. We review and help - nothing can go wrong.
- Report issues on GitHub and help us solve them for everyone.
- Contribute code and simulation examples - we help you with guidelines, tools, and reviews.
- Meet the community in one of the preCICE workshops and conference sessions.
You support preCICE – preCICE supports you
As the developers of preCICE, we enjoy supporting our academic and industry users, but due to the growing demand, we are not able to service all support requests any more. We are introducing preCICE support as a way to contribute to sustainable open-source software development and to ensure preCICE is developed and maintained in the future. Supporting preCICE comes with several benefits:
- Increased success rate for your research proposal (include preCICE as a partner, software provider, or sub-contractor)
- Priority support and direct access to the preCICE developers
- Private, on-site support and bespoke training
We offer different levels of support for industry and academia.
Frequently asked questions (FAQ)
Yes, but it will be computationally expensive. preCICE is mainly designed to couple simulations that share ...Learn more
I wanted to ask if there are some additional guidelines on how to write good adapters for preCICE. I have the feeling that ...Learn more
Yes! Several people are doing this already. Even though there may be other ways to do one-way coupling, it may ...Learn more
Tried and tested by a global community
How does it look like?
In this tutorial case, we couple OpenFOAM with CalculiX for FSI. OpenFOAM starts and waits for CalculiX. After they both start,
they find each other and start performing a serial-implicit coupling with interface quasi-Newton acceleration.
These options are set in the preCICE configuration file