This page gives an overview on available preCICE APIs and minimal reference implementations.

preCICE is written in C++. Thus, the native API language of preCICE is C++ as well. If you are new to the preCICE API, we recommended that you first follow the step-by-step guide.

Native API

The definite documentation of the C++ API is available on the preCICE API doxygen pages for the latest release, or see more options.

Language Location Installation
C++ precice/precice/tree/main/src/precice/Participant.hpp Automatically included

Bindings

Besides the C++ API, there are also bindings to other languages available:

The community is also working on the following bindings:

Language Location Notes
Rust ajaust/rust-precice Experimental prototype / work in progress

Minimal reference implementations

For all languages, we provide minimal reference implementations, so called solver dummies. They can be a great source to copy from.

The community also maintains MPI-parallel versions of some of these solver dummies.

Architectural overview of bindings

All the language bindings are calling the C++ API of preCICE and some of them are interdependent. Here is an overview of what uses what:

Architectural overview of bindings