OpenFOAM v7 cannot find pointDisplacement

Dear preCICE community,

I am attempting to model FSI of a VAT using OpenFOAM v7 coupled with calculix.

I have learned that openfoam lacks the capability of solving both rotation and deformation together out-of-the-box. I have turned to a third-party to create a custom solver to do this. This class merges the solidBody solver for rotation with displacementLaplacian for deformation.

The dynamicFvMesh class that was created is based off of foam-extend and has been updated to work with OpenFOAM v7.

I am getting the following error:

--> FOAM Warning : 
    From function void adapterInfo(std::__cxx11::string, std::__cxx11::string)
    in file Utilities.C at line 50
    e[31mError (deferred - will exit later) in the preCICE adapter: e[0m

    request for pointVectorField pointDisplacement from objectRegistry region0 failed
    available objects of type pointVectorField are
0()

I have successfully run FSI models with deformation only (using displacementLaplacian class only), so it appears that the openfoam-precice-calculix communication and set-up is ok.

I understand that this is probably a known issue with merging versions:
https:// github.com/precice/openfoam-adapter/issues/123

Could someone suggest a workaround given my particular case?

Many thanks,
Conor

Hi @ConorMD,

mainly for future readers: the most common reason that you may be getting this error is that you are running an FSI tutorial prepared for a new OpenFOAM version, while you are using an old OpenFOAM version (e.g. OpenFOAM 5). Usually the solution is specifying the correct solver in your system/controlDict (see the comments there).

Now, in your case, what worries me it:

This class needs to actually register pointDisplacement in the object registry of the solver. Solvers that are shipped with OpenFOAM usually do this. It looks like the solver does not register any kind of pointVectorField data to the object registry.

Could you post your complete log file? There should be list with all the registered objects above it. Maybe looking at this list will help you already understand what is going on.

Hi @MakisH,

Find attached the log file.

Fluid.log (20.1 KB)

Thank you,
Conor

You actually don’t see the list of registered objects because it only comes later, when setting up the checkpointing.

How does your solver actually store the pointDisplacement?