RBF mapping vs. nearest projection mapping


I have a question regarding the different mapping options:

I actually work at the Mok-FSI benchmark with standard preCICE adapters for OpenFOAM and CalculiX. The benchmark is similar to the flap-case tutorial and I received good agreement and a smooth mapping with rbf-thin-plate-splines-mapping. If I switch to nearest projection I receive overlapping meshes at the FSI interface. I see this kind of problem quite often in nearest projection mapping and I wonder if there is something wrong in my set-up, mesh density or parameters (e.g. the FSI coupling).

Many thanks in advance for any advice.

P.S: I’ve been digging deeper and noticed I noticed that apparently not all my nodes on the structure are used for the mesh move. I found 420 entries in the VTK export, while I have about 600 nodes on the FSI interface in the solid. My cell density between flow and structure is approximately the same, which leads to twice as much node density in the solid (due to the intermediate nodes). Is this a problem for the mapping? I can’t completely exclude that there is a problem in the grid export or an inconsistency what preCICE expects as input.

precice-config_rbf.xml (2.5 KB) precice-config_np.xml (2.4 KB)

Hi Ulrich,

Could you please have a look at the mesh connectivity of the interface mesh “Solid” received by the participant “Fluid”? Please also check the partitioned meshes in case you run “Fluid” in parallel.
You can enable the vtk export by adding the <export:vtk /> tag:

<participant name="Fluid">
  <export:vtk />

The consistent nearest-neighbor mapping utilizes the connectivity of the Solid mesh to interpolate the data. Missing connectivity forces the nearest-projection to project on vertices, which then results in a nearest-neighbor mapping.
The partially overlapping meshes could be a symptom for the latter.

Also possible is that the safety factor for the mesh decomposition is too small. which could lead to the removal of vertices (and their connectivity) near partition borders.
You can adjust it using the safety-factor attribute of use-mesh:

<participant name="Fluid">
    <use-mesh name="Solid" from="Calculix" safety-factor="0.75" />

Please check the reference of the use-mesh tag for additional information.

1 Like

Hi Frederic,
Thank you for the recommendations.In fact, it seems that a nearest-neighbor was used instead of a nearest-projection. I have adapted my case and now it works. There are still quite a lot of nodes being discarded (which might make sense since it is a flat problem), but there is no more grid intersection. The results look good. Very similar to rbf.
Many greetings

Hi Ulrich,

No worries! Good to see that it wasn’t a real problem in the end.
Debugging nearest projection can be tricky as the fallback to nearest-neighbour is valid behaviour.


Hello Ulrich,

If I’m not mistaken, to activate the nearest-projection mode, you must add the connectivity in the mesh used for calculix. How did you generate the “.sur” file and which mesh tool do you use?

For my part, I am using gmsh and I don’t know how to generate the .sur file.

Many thanks in advance


Hi @CyrilleBonamy Do you mind opening a new topic for this issue?

I’m not sure it’s really related to precice.
It’s more related to calculix, although calculix does not process the “.sur” files

But if you think it deserves a new topic, why not. :slight_smile:

Hi Cyrille, we use our own pre-processing environment with a commercial mesher where we integrated the preCICE support (preCICE). Here I integrated the option for surface export. The surface definition in general is also used for other functionality in CalculiX (e.g. contact or pressure loads). The surface export looks a little bit cumbersome: You have to traverse the elements, check the node connections and find the element face, which represents the surface (*SURFACE). Maybe some other pre-processing tools can generate this also automatically.
If you are interested in testing our GUI for this, please send me a private message. Maybe it helps to understand the setup. But here you will need a Parsolid or ACIS Cad model as import (step/iges are not supported).
Best regards

1 Like