OpenFOAM mesh motion problem: Compression of single cells

Dear friends,

we have a problem with mesh motion in OpenFOAM (for FSI applications with CalculiX), especially when the fluid mesh is to be compressed into a gap by displacing the solid domain.

Here, the displacementLaplacian displacement approach in OpenFOAM shows a strong compression of individual cells in the domain in a wave-like structure up to the crash. I use hex grids and planar simulations. I have encountered this problem frequently and I wonder if anyone has already found a solution for a better mesh motion in OpenFOAM for cases like this.

Many greetings



Dear Ulrich,

try using the RBFMeshMotionSolver from the nextRelease branch of solids4Foam, which should work with the latest OpenFOAM adapter (v1.2.0, currently in master, to be tagged very soon):

Dear Makis, thanks a lot. I will try this. I tried meanwhile SBRStress solver which is directly available in OpenFOAM.The SBRStress solver gives also a pretty nice mesh with good orthogonality. But I’m not yet at the end of my mesh desired compression. I will check out which solver then allows the highest grid compression.
Best regards


Dear Makis,

after we continued to have problems with the displacement of the grid (with displacementSBRStress-Solver), we followed your recommendation and used the RBFMeshMotion with the new preCICE version. We were able to successfully reproduce your flap case (Displacement reading: Allow mesh motion solvers without a pointDisplacement field by solids4foam · Pull Request #241 · precice/openfoam-adapter · GitHub). Thank you very much for providing it. However, we have encountered a new problem:

The RBF-MotionSolver seems to always set the grid points at the boundaries to fixedValue, so that no sliding of the grid on the boundaries is possible. However, a working “slip” condition on some walls would be mandatory for us. We have tried it with different settings in dynamicMeshDict (static/moving/fixed patches) as well as with different entries in the pointDisplacement file, but it seems that it is not used at all.

Do you know if and how a slip boundary condition for the grid displacement on some boundaries can be realised in the RBFMotion solver?
Thanks a lot

What exactly do you mean by “sliding of the grid”? Having a moving part? If that is not on the coupling interface, then maybe @philip could help (or maybe ask solids4foam).

If the moving part is on the coupling interface, then this is not currently easy to do with preCICE (work in progress).

Dear Makis, thanks for your reply.
With sliding I mean a “*slip”-conditions in the pointDisplacement. For the Laplacian and SBRStress solver we can use e.g. “slip” or “fixedNormalSlip” to allow a sliding of the mesh nodes along wall patches. This is quite important, if a deformed structure comes close to a wall. Please see attached figure with an initial solid in blue and a deformed solid in brown: If the nodes stick at the wall, the mesh gets highly deformed (see red line). In a closing gap situation (deformed solid reaches the wall boundary) it is very important that the nodes on the wall-patch can slide along the wall (see green line): The mesh is compressed but it remains more or less orthogonal. For this we don’t see an option in the RBF-motion solver. But we contacted Philip as you suggested.

1 Like