Rbf solver issues

Hello
Hope you are all well
I have a 3D case and am trying to use the RBF solver with this setup in parallel.
I ran the case with displacementLaplacian and it runs for about 0.09secs out of 1 sec (900 timesteps) before diverging.
I have run a 2D case using RBF (Displacement reading: Allow mesh motion solvers without a pointDisplacement field by solids4foam · Pull Request #241 · precice/openfoam-adapter · GitHub) and it worked great but once I switch to a 3D case, the sim diverges immediately.
I tried using different things like removing FaceNodes ( OpenFOAM adapter with RBFMeshMotionSolver - Official adapters and tutorials - preCICE Forum on Discourse) and changing coarsening and interpolation but nothing works.

precice-config.xml (2.7 KB)
preciceDict.txt (927 Bytes)

I have attached my preciceDict and precice-config files for reference

I can even send the whole case just so that the setup can be confirmed.

Would really appreciate any help

This is how it terminates:

---[preciceAdapter] Loaded the OpenFOAM-preCICE adapter - v1.1.0 + unreleased changes.
---[preciceAdapter] Reading preciceDict...
---[precice] ^[[0m This is preCICE version 2.3.0
---[precice] ^[[0m Revision info: no-info [Git failed/Not a repository]
---[precice] ^[[0m Configuration: Release (Debug and Trace log unavailable)
---[precice] ^[[0m Configuring preCICE with configuration "../precice-config.xml"
---[precice] ^[[0m I am participant "Fluid"
---[precice] ^[[0m Connecting Master to 95 Slaves
---[precice] ^[[0m Setting up master communication to coupling partner/s
---[precice] ^[[0m Masters are connected
---[precice] ^[[0m Setting up preliminary slaves communication to coupling partner/s
---[precice] ^[[0m Prepare partition for mesh Fluid-Mesh-Faces
---[precice] ^[[0m Gather mesh Fluid-Mesh-Faces
---[precice] ^[[0m Send global mesh Fluid-Mesh-Faces
---[precice] ^[[0m Prepare partition for mesh Fluid-Mesh-Nodes
---[precice] ^[[0m Receive global mesh Solid-Mesh
---[precice] ^[[0m Broadcast mesh Solid-Mesh
---[precice] ^[[0m Filter mesh Solid-Mesh by bounding box on slaves
---[precice] ^[[0m Mapping distance not available due to empty partition.
---[precice] ^[[0m Mapping distance min:2.58385e-05 max:0.00104288 avg: 0.000558285 var: 3.79615e-08 cnt: 256
---[precice] ^[[0m Filter mesh Solid-Mesh by mappings
---[precice] ^[[0m Feedback distribution for mesh Solid-Mesh
---[precice] ^[[0m Setting up slaves communication to coupling partner/s
---[precice] ^[[0m Slaves are connected
---[precice] ^[[0m iteration: 1 of 50, time-window: 1 of 10000, time: 0, time-window-size: 0.0001, max-timestep-length: 0.0001, ongoi$
---[precice] ^[[0m Compute "write" mapping from mesh "Fluid-Mesh-Faces" to mesh "Solid-Mesh".
---[precice] ^[[0m Mapping distance min:2.58385e-05 max:0.00104288 avg: 0.000558285 var: 3.79615e-08 cnt: 256
---[precice] ^[[0m Compute "read" mapping from mesh "Solid-Mesh" to mesh "Fluid-Mesh-Nodes".
---[precice] ^[[0m Mapping distance not available due to empty partition.
---[preciceAdapter] preCICE was configured and initialized
---[preciceAdapter] Setting the solver's endTime to infinity to prevent early exits. Only preCICE will control the simulation's endTi$
wallShearStress wallShearStress:
    processing wall patches:
        interface

Courant Number mean: 0 max: 0
Time = 0.0001

PIMPLE: iteration 1
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

on the solid side:

Adapter writing coupling data...
Writing DISPLACEMENTS coupling data with ID '2'.
Adapter calling advance()...
---[precice]  relative convergence measure: relative two-norm diff of data "Displacement" = inf, limit = 1.00e-03, normalization = 0.0
0e+00, conv = true
---[precice]  relative convergence measure: relative two-norm diff of data "Force" = inf, limit = 1.00e-03, normalization = 0.00e+00,
conv = true
---[precice]  All converged
---[precice] WARNING:  The coupling residual equals almost zero. There is maybe something wrong in your adapter. Maybe you always writ
e the same data or you call advance without providing new data first or you do not use available read data. Or you just converge much
further than actually necessary.
---[precice] ERROR:  Send using sockets failed with system error: write: Broken pipe

When I use displacementDelta:

---[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 pointVectorField unused 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
<double>, 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<double>, Foam::pointPatchField, Foam::pointMesh> const& Foam::objectRegistry::lookupObject<Foam:
:GeometricField<Foam::Vector<double>, 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<c
har>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) at ??:?
#4  preciceAdapter::FSI::FluidStructureInteraction::addReaders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator
<char> >, 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::dict
ionary const&) at ??:?
#8  Foam::functionObject::adddictionaryConstructorToTable<Foam::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  ? at ??:?
#13  __libc_start_main in /usr/lib64/libc.so.6
#14  ? at ??:?
../../../tools/run-openfoam.sh: line 15: 3316715 Aborted                 (core dumped) ${solver}

Anyone with some insight on this matter?

Would appreciate any help

@Makis and @DavidSCN probably have the best insight here.

Hello
Anyone with some suggestions on this?
RBF solver has not worked for any of my 3D cases be it a simple tube or a complex valve.

Would appreciate any help.

Hi @mishal49

I am neither an expert on OpenFOAM, nor mapping methods in preCICE, but I noticed that you are using preCICE v2.3.0. Would it be possible for you to update to preCICE v3? We have a host of new things, which perhaps solve your problems, or at least give you more insights.