I’ve done some tests with one interface, as @KyleDavisSA suggested. Here’s what I’ve found out.
CCX 2.15 + adapter
Here, solver-interface dimensions="3".
One interface
- NN mapping: works but results are not good. Specifically, the displacements received by OpenFOAM are not those shown by CalculiX. Already after the first few timesteps something like this is seen on OF’s side:
It’s as if the flap is displaced downward from the cylinder’s center. Nothing of the sort happens on CalculiX’s side.
Of course, the above affects force calculation and so on. This one does not crash, even after 1000+ timesteps and a highly distorted mesh. After some time, as is to be expected, the pimple solver does not converge (and I kill the process).
- RBF Thin Plate Splines (global support): fails outright. Fluid’s side:
---[precice] Compute "write" mapping from mesh "Fluid-Mesh-Centers" to mesh "Solid-Mesh".
---[precice] Using tree-based preallocation for matrix C
[2]PETSC ERROR: [0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 8 FPE: Floating Point Exception,probably divide by zero
Solid’s side:
corrupted double-linked list
[andres-linux:23429] *** Process received signal ***
[andres-linux:23429] Signal: Aborted (6)
Same thing using z-dead="true"
- RBF (basis functions with local support): I’m kind of puzzled about how to set it up here. Since I’m using
solver-interface dimensions="3", I have to take into account that cell centers have a z=0.5 coordinate, while the for the solid-mesh’s nodes it’s either z=0 or z=1. Furthermore, a local support radius larger than the flap’s thickness may lead to the selection nodes from the other side of the flap.
Three interfaces
-
NN mapping: works but once again results are not good. Once again, displacements are good in CCX but wrong in OpenFOAM, specially where the flap joins the cylinder (the fluid’s mesh there is much finer than the solid’s).
-
RBF Thin Plate Splines (global support) for top and bottom: fails with
---[precice] Compute "write" mapping from mesh "Fluid-Mesh-Centers-Top" to mesh "Solid-Mesh-Top".
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 8 FPE: Floating Point Exception,probably divide by zero
- RBF (basis functions with local support): again, I’m puzzled as to what support-radius to choose for the mapping Fluid-Mesh-Centers (z=0.5) → Solid-Mesh (z=0 or z=1).
CCX 2.16 + adapter
Here, solver-interface dimensions="2".
One interface
- NN mapping: solid fails with segmentation fault:
Adapter writing coupling data...
[andres-linux:26597] *** Process received signal ***
[andres-linux:26597] Signal: Segmentation fault (11)
- RBF Thin Plate Splines (global support): solid fails with segmentation fault:
Adapter writing coupling data...
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
- RBF TPS C2 (local support): same as with RBF Thin Plate Splines.
So that’s that. Not splitting the interface seems to go nowhere.
Three interfaces
- Any mapping: fails with:
---[precice] Revision info: v2.3.0
---[precice] Configuration: Release (Debug and Trace log unavailable)
---[precice] Configuring preCICE with configuration "../precice-config.xml"
---[precice] I am participant "Solid"
Using quasi 2D-3D coupling
Set ID Found
ccx_preCICE: adapter/PreciceInterface.c:559: PreciceInterface_ConfigureNodesMesh: Assertion `count == interface->num2DNodes && "Filtering of 2D nodes not done properly. Please make sure the out-of-plane axis is Z-axis"' failed.
which I believe is being looked into in that GitHub issue I linked to earlier.
Ok, so I’m stumped about how to proceed. My original idea was to set solver-interface dimensions="2" + split interface. I’d get two 1D RBF mappings (top and bottom) and an NN one for the side. The 2.15 adapter does not support 2D interfaces and the 2.16 adapter refuses to work with a split interface.
Andrés
