Skip to content

Notes on preCICE

Makis Chourdakis edited this page Nov 26, 2017 · 6 revisions

Compatible preCICE versions

preCICE 1.0.0 (November 9, 2017) is known to work with the adapter. Newer versions should also be compatible.

Please remember:

  • If you are using preCICE as a shared library, you need to have it added in your LD_LIBRARY_PATH.
  • If you are using preCICE as a static library, you need to specify its dependencies when using building the adapter.

These are described in the building instructions of preCICE.

Notes on preCICE features

The adapter is developed with all the features of preCICE in mind. However, some specific features are not yet fully supported.

Nearest-projection mapping

The nearest-projection mapping is currently not supported by the OpenFOAM adapter, as topological information is not yet provided to preCICE. This will be implemented in future releases.

Checkpointing

In the case of implicit coupling, the participants are required to store checkpoints of their state. The adapter tracks all the registered objects of type volScalarField, volVectorField, surfaceScalarField and surfaceVectorField. After reading a checkpoint, the boundaries are evaluated again for all the tracked volScalarField and volVectorField objects, to improve the stability.

However, there is a known bug in the current implementation, where trying to evaluate the boundaries after reading a checkpoint, for some fields, will lead to an error. This is currently known to happen only for the epsilon field of the kEpsilon turbulence model. In case this field is available, it is not tracked and a warning is reported. Please let us know if this happens in any other case.

You may also disable the evaluation of the boundaries after reading a checkpoint, by using the evaluateBoundaries: No option. Additionally, you may disable the checkpointing completely, by using the disableCheckpointing: Yes option. This tricks preCICE by not adding any fields to the checkpoints. You may use this only for development purposes, as implicit coupling should always be used with checkpointing.