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. If you are using an older version, see the porting guides to port an adapter between major version of preCICE.

Next to the native C++ API, bindings for further languages are also available. In this page, we provide an overview of all supported languages, including location, installation, and minimal reference implementations.

The reference implementations are the so called solver dummies, which can be a great source to copy from. The community also maintains MPI-parallel versions of some of these solver dummies.

C++

This is the native API of preCICE.

See also the source code documentation (Doxygen pages) for the latest release, or the development version.

C

C bindings are included in the main repository.

Fortran

Fortran bindings are included in the main repository.

Fortran module

Python

Matlab

Julia

Rust

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