I have a question about stability in FSI coupling of OpenFoam and CalculiX. I’m currently running a case of a fluid chamber where one side is a deformable membrane. I think one could classify it as an added-mass problem with similar densities.
Question: Why is my case stable with tetrahedron elements for the solid mesh but not with hexahedron elements?
- 3D laminar, incompressible (pimpleFoam)
- 2D scheme of the set up:
For OpenFoam, I use a simple blockmesh. For Calculix, I tried linear Hex elements (He8R) and 2nd order Tet elements (Te10). The meshes have similar numbers of elements.
Graphic of the meshes at the interface:
conformal hex-hex mesh. nearest-neighbor mapping used
Calculix tet (black), OpenFoam blockmesh (blue). Nearest-projection mapping used
My desired result is the following figure which shows the deformation of the membrane mid-point vs. time. The deformation is similar for both meshes, but the hex-simulation diverges.
What I know so far:
- Tet-Elements are stiffer, which leads to the smaller slope in the deformation.
- The instability probably lies in the coupling. I’m using implicit methods in the fluid and solid solver (pimpleFoam with Euler, CalculiX dynamic). When simulating the solid part alone, there is no divergence for any element type I used.
- The stability of the FSI simulation with hex-mesh is time-step-dependent: The smaller the time step, the earlier the simulation diverges. When using tet-mesh, however, the simulation is stable for a wide range of timesteps (I tested 1e-7 s…1e-4 s).
- Lower fluid density helps with convergence.
So… I was ready to experience instabilities at some point, because the setup is tricky, with the fluid only having one inlet/outlet. But I can’t figure out why the tet-mesh configuration is so much more stable than the hex-mesh config.
- Element order: The meshes have similar element numbers, but the node number of the tet mesh is higher (due to 2nd order). Maybe this has a positive effect?
- Mapping algorithm: For the tet-mesh I’m using nearest-projection, maybe that has an influence on the stability, like some kind of diffusion effect? I would have thought that nearest-neighbor is the “safer” method.
Sorry for the wall of text. I am posting some config and log files below and I can post the full cases upon request! But I hope that I made my question clear for the beginning.
Tetrahedra case (no divergence, runs without problem):
precice-config.xml (2.5 KB)
membrane_inp_Tet.txt (569 Bytes)
log_ccx_Tet.txt (374.1 KB)
log_pimpleFoam_Tet.txt (153.0 KB)
precice-Fluid-iterations.log (8.3 KB)
precice-Solid-convergence.log (184.2 KB)
Hexahedra case (divergence):
precice-config.xml (2.4 KB)
membrane_inp_hex.txt (569 Bytes)
log_ccx_Hex.txt (2.6 MB)
pimpleFoam_hex.log (778.2 KB)
precice-Fluid-iterations.log (68.0 KB)
precice-Solid-convergence.log (605.0 KB)