We use semantic versioning for preCICE, which means that you can extract useful information from the version number. If the first digit (major version) does not change, this means that you don’t need to update your adapter or (usually) your preCICE configuration file. However, when the major version number increases, this means that you need to update your code as well (we plan for a major version change once every 2-3 years). We recommend using the latest stable versions of preCICE and the corresponding bindings and adapters.
This is described in detail in #614 and was done to simplify the setup. Change:
- SolverInterface interface(solverName, commRank, commSize); - interface.configure(configFileName); + SolverInterface interface(solverName, configFileName, commRank, commSize);
Typical error message that should lead you here:
error: no matching function for call to ‘precice::SolverInterface::SolverInterface(std::__cxx11::string&, int, Foam::label)’ precice_ = new precice::SolverInterface(participantName_, Pstream::myProcNo(), Pstream::nProcs());
note: candidate: precice::SolverInterface::SolverInterface(const string&, const string&, int, int) SolverInterface( ^ .../SolverInterface.hpp:52:3: note: candidate expects 4 arguments, 3 provided
Sorted out duplicate meaning of timestep
- Renamed API function
fulfilledActionwas renamed to
- Moved to
- Separated into
- Moved the intrinsic Fortran bindings to
- Renamed the “Fortran 2003 bindings” to “Fortran module” and
precice. Moved them to precice/fortran-module.
preCICE configuration file
preCICE defaults to
master:mpi-singlefor parallel participants (see #572).
It now defaults to
point-to-point, use the attribute
enforce-gather-scatter=1if this is not desired (see #572).
- Renamed CMake variables (#609)
CMAKE_BUILD_TYPEis automatically set to
Debug, if empty
- CMake variables for enabling C and Fortran
- Removed SCons completely. You can do everything and much more with CMake.
All the tutorials are adapted for preCICE v2. You can still find a version compatible with preCICE v1.6.1 here.
Most of the adapters (all apart from the “under initial development” ones) are only supporting the latest version of preCICE. Make sure also that you are using the correct branch: an adapter’s
develop is supposed to work with preCICE
develop, and similar for
At the same time as preCICE v2, we also changed the configuration format of the OpenFOAM adapter: Instead of a yaml file, it is now an OpenFOAM dictionary, making installation even easier. Please refer to the Configuration page for more details.