Mesh Solver OpenFOAM Error

Hello
Hope you are all well
I was working on an FSI case setup using OF and CalculiX for flow over an elastic sphere and received an error that I noticed a few other people got in the posts below.

preCICE using new Mesh Motion Solver - Official adapters and tutorials - preCICE Forum on Discourse

Request for pointVectorField pointDisplacement from objectRegistry region0 failed | available objects of type pointVectorField are 0() - Using preCICE - preCICE Forum on Discourse

This is the error I got when executing ./run.sh for the fluid side:

—[precice] I am participant “Fluid”
—[preciceAdapter] [DEBUG] preCICE solver interface was created.
—[preciceAdapter] [DEBUG] Creating interfaces…
—[preciceAdapter] [DEBUG] Number of face nodes: 3600
—[preciceAdapter] [DEBUG] Interface created on mesh Fluid-Mesh-Nodes
—[preciceAdapter] [DEBUG] Adding coupling data writers…
—[preciceAdapter] [DEBUG] Adding coupling data readers…
→ FOAM FATAL ERROR: (openfoam-2106)
request for pointVectorField pointDisplacement from objectRegistry region0 failed
available objects of type pointVectorField are
0()
From const Type &Foam::objectRegistry::lookupObject(const Foam::word &, bool) const [with Type = Foam::GeometricField<Foam::Vector, Foam::pointPatchField, Foam::pointMesh>]
in file /scratch/projects/UNT/apps/OpenFoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 463.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::error::exitOrAbort(int, bool) at ??:?
#2 Foam::GeometricField<Foam::Vector, Foam::pointPatchField, Foam::pointMesh> const& Foam::objectRegistry::lookupObject<Foam::GeometricField<Foam::Vector, Foam::pointPatchField, Foam::pointMesh> >(Foam::word const&, bool) const at ??:?
#3 preciceAdapter::FSI::DisplacementDelta::DisplacementDelta(Foam::fvMesh const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at ??:?
#4 preciceAdapter::FSI::FluidStructureInteraction::addReaders(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, preciceAdapter::Interface*) at ??:?
#5 preciceAdapter::Adapter::configure() at ??:?
#6 Foam::functionObjects::preciceAdapterFunctionObject::read(Foam::dictionary const&) at ??:?
#7 Foam::functionObjects::preciceAdapterFunctionObject::preciceAdapterFunctionObject(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#8 Foam::functionObject::adddictionaryConstructorToTableFoam::functionObjects::preciceAdapterFunctionObject::New(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#9 Foam::functionObject::New(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#10 Foam::functionObjectList::read() at ??:?
#11 Foam::Time::run() const at ??:?
#12 Foam::Time::loop() at ??:?
#13 Foam::simpleControl::loop() at ??:?
#14 ? at ??:?
#15 __libc_start_main in /usr/lib64/libc.so.6
#16 ? at ??:?

I am using snappyHex to generate the fluid mesh. Is that a potential reason why I am getting this error? I have attached my case folder below if that helps.
sphere_0810.zip (380.8 KB)

Would appreciate any assistance.

Hi @mishal49,

can you try if the latest develop branch of the adapter works? This PR may have helped: Displacement reading: Allow mesh motion solvers without a pointDisplacement field by solids4foam · Pull Request #241 · precice/openfoam-adapter · GitHub

(see also I was asked to try a Pull Request. How can I do that?, although this PR is already merged and you can just git pull and git checkout develop, then ./Allclean and ./Allwmake)

Hi @Makis
Okay. Let me try this.
I did switch the fluid mesh to one generated from a commercial software and still encountered the same error so does that mean that the adapter is still the issue?

Hi @Makis
I compiled the latest adapter and updated the dynamicMeshDict and preciceDict files. I now encounter the same error much earlier.

From static Foam::autoPtrFoam::functionObject Foam::functionObject::New(const Foam::word &, const Foam::Time &, const Foam::dictionary &)
in file db/functionObjects/functionObject/functionObject.C at line 122.
→ loading function object ‘residuals’
—[preciceAdapter] Loaded the OpenFOAM-preCICE adapter - v1.1.0 + unreleased changes.
—[preciceAdapter] Reading preciceDict…
—[precice] This is preCICE version 2.3.0
—[precice] Revision info: no-info [Git failed/Not a repository]
—[precice] Configuration: Release (Debug and Trace log unavailable)
—[precice] Configuring preCICE with configuration “…/precice-config.xml”
—[precice] I am participant “Fluid”
→ FOAM FATAL ERROR: (openfoam-2106)
request for volVectorField rbfMotionCentersField from objectRegistry region0 failed
available objects of type volVectorField are
1(U)
From const Type &Foam::objectRegistry::lookupObject(const Foam::word &, bool) const [with Type = Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh>]
in file /scratch/projects/UNT/apps/OpenFoam/OpenFOAM-v2106/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 463.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::error::exitOrAbort(int, bool) at ??:?
#2 Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> const& Foam::objectRegistry::lookupObject<Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> >(Foam::word const&, bool) const at ??:?
#3 preciceAdapter::FSI::Displacement::Displacement(Foam::fvMesh const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at ??:?
#4 preciceAdapter::FSI::FluidStructureInteraction::addReaders(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, preciceAdapter::Interface*) at ??:?
#5 preciceAdapter::Adapter::configure() at ??:?
#6 Foam::functionObjects::preciceAdapterFunctionObject::read(Foam::dictionary const&) at ??:?
#7 Foam::functionObjects::preciceAdapterFunctionObject::preciceAdapterFunctionObject(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#8 Foam::functionObject::adddictionaryConstructorToTableFoam::functionObjects::preciceAdapterFunctionObject::New(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#9 Foam::functionObject::New(Foam::word const&, Foam::Time const&, Foam::dictionary const&) at ??:?
#10 Foam::functionObjectList::read() at ??:?
#11 Foam::Time::run() const at ??:?
#12 Foam::Time::loop() at ??:?
#13 Foam::simpleControl::loop() at ??:?
#14 ? at ??:?
#15 __libc_start_main in /usr/lib64/libc.so.6
#16 ? at ??:?
…/…/tools/run-openfoam.sh: line 15: 2046204 Aborted (core dumped) ${solver}

Hello
Any suggestions on what the issue could be?

This is the error message, essentially meaning that either there is no such field, it is named differently, or it has a different type. Assuming that you are now using solids4foam, are you using the latest develop version of it? Have you modified your dynamicMeshDict compared to the files you attached above?

I am using Calculix for this case and yes, I did modify the files to follow similar formatting to the ones shared. I have attached a link to the case and all relevant files.
https://myunt-my.sharepoint.com/personal/mishalraza_my_unt_edu/Documents/Attachments/sphere_PW2(1).zip

I don’t have access to this file, but I guess only a few files are relevant.

I don’t know if you noticed already, but we recently added a solids4foam case for our perpendicular flap tutorial: Perpendicular flap | preCICE - The Coupling Library Maybe it also helps comparing the configs.

Sorry about that. This should work

I do not see a folder for solid4Foam in the flap case in the tutorial repository:

Running your case, I also get the same issue.

Can you run the perpendicular flap tutorial fluid-openfoam case, configuring with RBFMeshMotionSolver, as Philip describes here?

I guess one aspect we have not checked is whether simpleFoam works at all (it should), as we mostly use pimpleFoam in our FSI tutorials.

You are right, as we have not yet released a new version of the tutorials (but the website points to “develop”, which can be misleading in situations like this). Just go to the develop branch: GitHub - precice/tutorials at develop

I tried this and still encountered errors.
Can I use the RBF solver only with solid4Foam?
Do I have to stick to other solvers if I am using CalculiX?

The same error, or something else?

There is probably a misunderstanding here. The RBF Mesh Motion Solver is provided by solids4foam, and you can use it in your fluid solver, if you have solids4foam installed. It does not matter what solver you have on the Solid side.

I see. I do not have Solid4Foam installed so I am not able to use this solver yet.
I can try and install to see if it makes a difference.