Openfoam-adapter linking problems OpenFOAM v2212

Hello,
I would like to link OpenFOAMv2212 (build from source) with CalculiX.
(my goal is to use a custom openfoam solver later)

System:

  • Ubuntu 22.04
  • OpenFOAMv2212 (build from source)
  • CalculiX - ccx_2.20
  • preCICE - libprecice2_2.5.0_jammy.deb
  • openfoam-adapter - v1.2.3

I stuck to the Quickstart-Wiki apart from point 2. because OpenFOAMv2212 was already running on my computer.

By compiling the openfoam-adapter - v1.2.3, the following error appears:

=== ERROR: Building completed with linking problems: there were undefined symbols. ===
Possible causes:
- Is preCICE discoverable at runtime? Check the content of pkg-config output above.
- Did anything go wrong while installing preCICE? Can you run any other preCICE tutorials?
- Did anything go wrong while installing OpenFOAM? Can you run any other OpenFOAM tutorials?
See wmake.log and ldd.log for more details.
Attach your Allwmake.log, wmake.log, and ldd.log when asking for help.

preCiCE and CalculiX run fine: ( tutorial: partitioned-elastic-beam)
OpenFOAM v2212 runs fine too.

What could be the problem?
Best regards, Lucas

wmake.log (36.6 KB)
Allwmake.log (1.0 KB)
ldd.log (18.1 KB)

You can find the details of this at the bottom of the ldd.log:

undefined symbol: fftw_taint	(/lib/x86_64-linux-gnu/libfftw3_mpi.so.3)
undefined symbol: fftw_join_taint	(/lib/x86_64-linux-gnu/libfftw3_mpi.so.3)
undefined symbol: _ZN7precice15SolverInterface24setMeshTriangleWithEdgesEiiii	(/home/mrt1/OpenFOAM/mrt1-v2212/platforms/linux64GccDPInt32Opt/lib/libpreciceAdapterFunctionObject.so)
undefined symbol: _ZN7precice15SolverInterfaceC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_ii	(/home/mrt1/OpenFOAM/mrt1-v2212/platforms/linux64GccDPInt32Opt/lib/libpreciceAdapterFunctionObject.so)
...

Two issues:

  • Cannot link to fftw_taint. This is a common OpenFOAM installation issue, see our documentation: Get the OpenFOAM adapter | preCICE - The Coupling Library
  • OpenFOAM cannot find preCICE at linking time, while it can find it at build time. The most common case is that preCICE is built from source, but not fully discoverable. See this documentation page: Building from source - Finding | preCICE - The Coupling Library The other case is that preCICE is installed from a Debian package for the wrong distribution version. Are you sure you are using Ubuntu 22.04 and libprecice2_2.5.0_jammy.deb? Because this combination should just work.
1 Like

Thank you very much @Makis,
it works now. The elastic-tube-3d tutorial runs without any problems.

That seems to have been the problem.

The *.deb package of preCICE and the Ubuntu version are as described above. I do not know where this error message can come from.