FSI2 FSI3 Turek Hron benchmark comparison

Hi everyone,
after the interesting conversation during the latest preCICE community hour, I’d like to share my configuration and to see if there is something that could be improved.
As a short recap, I am working on an MBDyn adapter and I’m using it to couple beam elements in a FSI coupling. Up to now I have managed to replicate the Turek Hron benchmark results for the FSI2 benchmark (some results are in this post: preCICE adapter for MBDyn solver for beam elements).

  • FSI2 converges quite slowly (mainly at the beginning many iterations are needed)
  • At the beginning I need to apply a ramp to the loads applied to the structure. It looks to me that the slope of the ramp is crucial for convergence (if too steep the simulation diverges), much more than the type of ramp (linear or 0.5\cdot(1-\cos))
  • I am using serial-implicit coupling with solid as first participant. this configuration works much better than other kinds of coupling
  • IQN-ILS seems the best acceleration
  • filter type QR1 outperforms QR2, as the residuals keep reducing over iterations
  • I am using the same Fluid configuration as the OpenFOAM-CalculiX tutorial

I’d like to share my configuration file precice-config.xml (3.8 KB) . My goal would be to improve convergence time and to make the FSI3 benchmark converge.


Hi Claudio,
thanks for sharing, I will try the config later with deal.II. Here some comments:

Yes, the ramp is also given in the original paper. One crucial difference of my setup is, that I use the original inlet profile with groovyBC and a parabolic profile. For some reason, the OpenFOAM ramp introduces instabilities, seems to be a bug; Benjamins guess was that it is related to the kink in the profile.

Agree! Nevertheless, it is good practice to tune a case with parallel-implicit coupling to see, whether the selected parameters are a good choice. Afterwards running it in serial mode still works better.

I don’t have observed differences in the type, but setting the limit in both cases has a crucial impact.

I pushed my whole case in my fork including the result files, so that you can see, if this is what you are looking for.

Note that it might not yet be perfect, some restrictions might even be too strict. Hope this helps.


Hi David,
first of all thank you for sharing your configuration and your experience. I have made some tests and I’d like to comment and ask you some questions.

I agree that the original parabolic profile performs much better than the constant profile (which I was using) while the time ramp in the velocity profile is much worse than using a ramp in applying the fluid forces on the structure. Btw: which version of OpenFOAM are you using? with your fluid configuration and OF19.12 I have problems in looking at the results in paraFoam.

I still haven’t found a satisfying set of parameters in parallel coupling. Convergence is much slower or the timestep doesn’t even converge. It might be that the parameters need to be tuned better.

That’s interesting. I might have to try to play more with the limit.

That said, I observe that:

  • Using a finer mesh (as in your example) and the parabolic velocity profile make the system more stable, even if at the moment I can’t reach the end of the ramp of the load. I can reach around 50% of the load (once I reached 83%. In the past I never reached more than 10-11%)
  • If I use a finer mesh only for the Fluid (i.e. a ratio 1:2 in the number of cells) the execution seems much faster and the convergence is mostly good
  • I noticed that you use a mesh thickness of 0.2, which is much bigger than what I use (0.01). I would like to ask why. In my case, even if nothing should change (the structural mesh must be thicker too), using a thicker mesh makes the coupling diverge much more quickly. The only obvious difference is that you exchange stresses and not Forces.


So you ramp the coupling? How do you do this? Can you describe this more in detail?
I’m computing with openfoam 1912, but use openfoam 7 for local visualization. Since I haven’t uploaded the Fluid results, I’m not sure which results you are referring to. Nevertheless the visualization should be compatible, at least with some minor changes.

So, it doesn’t work with my parametrization?

Have you tried the time ramping? You are using your own structural solver, right? Have you computed the CSM benchmarks?

Yes, I don’t even made an attempt to keep the number of coupling unknowns equally for both participants, since the solid resolution should be sufficient. Nevertheless, the ratio should not have a crucial impact i.e. your simulation should not become unstable, when you start refining your structural side.

Yes, so this depends on your solid solver. In case you use Stress data (as I do and as oftentimes applied in FE) the overall mesh thickness should not have any impact. The main contribution here is the Fluid pressure, which is independent of the cell thickness. In my case, I just use a more or less arbitrary ‘small enough’ thickness for an appropriate visualization.
The forces are on the other hand are integral values i.e. the stress integrated (in FV just multiplied) over the faces. Therefore, the thickness of the coupling interface has a crucial impact and must be consistent with your solid solver. In case you have a real 2D mesh (not as in OF a volumetric cell layer) you need to choose a unit thickness of 1 in OF as it is done in some tutorial cases. If you have a quasi 2D mesh in your solid solver, you need to ensure consistency with OF.