MBDyn OpenFOAM FSI coupling: convergence issues

After talking to @uekerman and @Makis about the issues I found coupling MBDyn and OpenFOAM and having found some interesting cues in the discussion from IQN fails for quickly changing forces during wetting in a free-surface FSI problem,
I would like to share some thoughts and considerations about my setup and PreCICE configuration. I am working on a vertical flap setup, where the structure is composed of a set of MBDyn beams and the fluid is a OF incompressible model. The forces and displacements of the fluid mesh points at the interface are mapped to MBDyn nodes by means of external structural mapping.
I have issues in making the setup converge when the ratio between the fluid density and the solid density increases. My configuration for the coupling scheme is the following:

        <time-window-size value="1.e-2" />
        <max-time value="10."/>
        <participants first="Solid" second="Fluid"/>
        <exchange data="Forces0" mesh="Solid-Mesh" from="Fluid" to="Solid" initialize="0"/>
        <exchange data="Displacements0" mesh="Solid-Mesh" from="Solid" to="Fluid" initialize="0"/>

        <max-iterations value="50"/>
        <relative-convergence-measure limit="1e-4" data="Displacements0" mesh="Solid-Mesh"/>
        <relative-convergence-measure limit="1e-2" data="Forces0" mesh="Solid-Mesh"/>
        <!--<extrapolation-order value="2"/>-->
            <data name="Forces0" mesh="Solid-Mesh"/>
            <data name="Displacements0" mesh="Solid-Mesh"/>-->
            <preconditioner type="residual-sum"/>
            <filter type="QR1" limit="1e-3"/>
            <initial-relaxation value="0.1"/> 
            <max-used-iterations value="10"/>
            <time-windows-reused value="10"/> 


I would summarize my best results up to now as follows:

  • I am using serial implicit coupling on forces as they converge with more difficulty. At the moment I don’t know if parallel implicit coupling would perform better, basically because of this topic: Assertion failed on ResidualSumPreconditioner
  • I also need to use a higher convergence limit on forces because of the difficulty in convergence
  • IQN-ILS performs better than IQN-IMVJ
  • filter type QR1 performs much better than QR2

I wonder if there could be other tests I could do. Afaik this is the the most stable configuration, as the convergence measures tend to improve step after step and not jump wildly during the coupling iterations.
What concerns me at the moment is some problem regarding the distribution of the forces at the interface. The problem is basically 2D, more or less like @JessicaMarino said in

For this reason I constrained the MBDyn nodes to move in the x-z plane and to rotate only around the y-axis (this is also done in the CalculiX tutorial). The OpenFOAM case ha only one cell in the y direction (I haven’t experimented with the cell length in y). I compute the resultant force and moment at the root of the flap both in the fluid (OF plugin) and in the structure. for the 2D nature of the problem, moments around the x and z axes should be 0 and so they are in the fluid. What happens in the solid is that the x or z components of the forces at the nodes are unbalanced as shown in the following pictures:

This gives a net moment around x or z at some timesteps and this solution is “stable” i.e. the coupling converges to it and stays there until the iteration steps end. this effect can be seen when plotting the forces and moment at flap root:

The difference between solid and fluid forces at the beginning of the simulation is due to the fact that I am using a progression of forces applied to the solid. Otherwise the resultant forces are consistent and the y-moment too.
this condition in general does not make the simulation diverge but it makes it very slow as a lot of iterations are done. I am using mapping:rbf-thin-plate-splines to map forces from fluid to solid. I have also tried to double the number of cells of the solid:

but this makes the coupling diverge immediately.
Is there a way I can overcome this problem? for example another kind of mapping could be better?
Thank you

Hi @Claudio

Let’s have a closer look at the mapping.
Could you export your fluid and solid coupling mesh, visualize both (and/or upload them), and upload the preCICE config you currently use?

Some further remarks for the moment:

  • When you accelerate forces with IQN, you optimize for the residual of the displacements. It’s expected that the displacements then converge quicker.
  • When you use QR1, a limit of 1e-3 is really strict. You see in the iterations file of the second participant how many columns are always deleted. In my experience it’s good if some columns get deleted but not too many.
  • max-used-iterations is too small. Normally 50-100 is good, but this depends on the size of your meshes – the IQN system needs to remain “tall and skinny”.


Hi @uekerman

Here I send you the links to the simulation data (config logs and exports) with fluid rho = 1: https://www.dropbox.com/s/ak6qd9zu1j1ti4d/vertical-flap-rho1-data.zip?dl=0
and to the simulation data with fluid rho=100 (this simulation diverges, but not for coupling reasons and the unbalance is still visible):

thank you for the remarks above. I’m applying them to the current simulations. I’ll let you know how it goes.