RBF mapping fails for 3D elastic tube

I am running a FSI simulation with openFOAM and calculix with the PreCICE interface of version 2.4.0. the coupling interface is in fact a cylinder perimeter surface. In fact, I am simulating the flow passing through a cylinder to make it vibrate.

Since the coupling interface is an axis-symmetric about the z axis, I expect the mapping is somehow ill-defined for RBF mapping as only the geometric information on the perimeter surface is available for the interpolation. From my understanding, I should turn off the radial coordinate in the mapping to make the interpolation work. However, I found it impossible to do that.

Is there a workaround, or I made a mistake here

Thank you

This looks very similar to the turek-hron-fsi3 tutorial case, which you can copy from. Note that this case specifies <solver-interface dimensions="2"> and both participants (OpenFOAM and CalculiX) work in a 2D mode automatically (because their adapters support that).

If this does not help, I would suggest that you upload your precice-config.xml.

Such warnings can be reproduced for the elastictube-3d tutorial case when you change the mapping from the nearest-projection to any of the RBF mapping setting, and the message goes

---[precice] e[0m Mapping "Force" conservative from "Fluid-Mesh-Faces" (ID 1) to "Calculix_Mesh" (ID 2) for dimension 0 with polynomial set to separate
---[precice] e[0m Mapping "Force" conservative from "Fluid-Mesh-Faces" (ID 1) to "Calculix_Mesh" (ID 2) for dimension 1 with polynomial set to separate
---[precice] e[0m Mapping "Force" conservative from "Fluid-Mesh-Faces" (ID 1) to "Calculix_Mesh" (ID 2) for dimension 2 with polynomial set to separate
---[precice] e[0m Compute "read" mapping from mesh "Calculix_Mesh" to mesh "Fluid-Mesh-Nodes".
---[precice] e[0m Using tree-based preallocation for matrix C
---[precice] e[0m Using tree-based preallocation for matrix A
---[precice] e[0m Using rescaling. Solver converged after 4961 of 10000 iterations due to sufficient relative convergence. Last residual norm: 5.00404e-08, limits: relative 5.08724e-08 (rtol 1e-09), absolute 1e-50, divergence 5.08724e+31(dtol 1e+30)
---[precice] e[0m Mapping "DisplacementDelta" consistent from "Calculix_Mesh" (ID 2) to "Fluid-Mesh-Nodes" (ID 0) for dimension 0 with polynomial set to separate
---[precice] e[36mWARNING: e[0m The linear system of the RBF mapping from mesh Calculix_Mesh to mesh Fluid-Mesh-Nodes has not converged. This means most probably that the mapping problem is not well-posed or your relative tolerance is too conservative. Please check if your coupling meshes are correct. Maybe you need to fix axis-aligned mapping setups by marking perpendicular axes as dead? Solver stopped after 10000 of 10000 iterations due to reaching the maximum iterations. Last residual norm: 4.65504e-13, limits: relative 1.12508e-15 (rtol 1e-09), absolute 1e-50, divergence 1.12508e+24(dtol 1e+30)
---[precice] e[0m Mapping "DisplacementDelta" consistent from "Calculix_Mesh" (ID 2) to "Fluid-Mesh-Nodes" (ID 0) for dimension 1 with polynomial set to separate
---[precice] e[36mWARNING: e[0m The linear system of the RBF mapping from mesh Calculix_Mesh to mesh Fluid-Mesh-Nodes has not converged. This means most probably that the mapping problem is not well-posed or your relative tolerance is too conservative. Please check if your coupling meshes are correct. Maybe you need to fix axis-aligned mapping setups by marking perpendicular axes as dead? Solver stopped after 10000 of 10000 iterations due to reaching the maximum iterations. Last residual norm: 1.87413e-12, limits: relative 1.05577e-15 (rtol 1e-09), absolute 1e-50, divergence 1.05577e+24(dtol 1e+30)
---[precice] e[0m Mapping "DisplacementDelta" consistent from "Calculix_Mesh" (ID 2) to "Fluid-Mesh-Nodes" (ID 0) for dimension 2 with polynomial set to separate
---[precice] e[36mWARNING: e[0m The linear system of the RBF mapping from mesh Calculix_Mesh to mesh Fluid-Mesh-Nodes has not converged. This means most probably that the mapping problem is not well-posed or your relative tolerance is too conservative. Please check if your coupling meshes are correct. Maybe you need to fix axis-aligned mapping setups by marking perpendicular axes as dead? Solver stopped after 10000 of 10000 iterations due to reaching the maximum iterations. Last residual norm: 3.80847e-13, limits: relative 9.40685e-17 (rtol 1e-09), absolute 1e-50, divergence 9.40685e+22(dtol 1e+30)
---[precice] e[0m iteration: 2 of 30, time-window: 1 of 100, time: 0, time-window-size: 0.0001, max-timestep-length: 0.0001, ongoing: yes, time-window-complete: no, read-iteration-checkpoint

Ah, I see what you mean. That’s indeed an interesting question.

You could check what the mapping actually does with ASTE (see, e.g, an ASTE tutorial).

The documentation states that:

The interpolation problem might not be well-defined if you map along an axis-symmetric surface. This means, preCICE tries to compute, for example, a 3D interpolant out of 2D information. If so, preCICE throws an error RBF linear system has not converged or Interpolation matrix C is not invertible. In this case, you can restrict the interpolation problem by ignoring certain coordinates, e.g. x-dead="true" to ignore the x coordinate.

So far, we mainly had cases where we were coupling pseudo-2D cases (with one cell per one direction). I am not sure if that was meant by this sentence (this should be a plane-symmetric case, not an axis-symmetric case), maybe @uekerman knows more.

But if RBF works for arbitrary shell-type shapes, it should also work here (maybe with some tweaking of the shape functions and the support radius - see RBF shape calculator).

Are you mapping between two different meshes of the same cylinder surface? Then, it should be no problem for RBF as information in all three dimensions is available. There is a misunderstanding somewhere. To say for sure, we would need to look at the meshes (please export them to vtk) and the specification of the mapping (the precice-config.xml that you use).