Growing Courant number in OpenFOAM FSI simulation


I have an ongoing issue with an FSI simulation that keeps going unstable on the OpenFOAM side - the max Courant number grows very large and the simulation crashes. I ran a successful version of this case with a coarser mesh in OpenFOAM, the issues then arose when I started using finer meshes (I did adjust the timestep to account for the change in the initial Courant number, which is below 0.5 at the start of the simulation). I have tried changing many of the OpenFOAM settings in fvSchemes and fvSolution with no success, and I am not sure if the issue is in OpenFOAM or preCICE. Does anyone have any advice? I can attach more of the case files if that would help.

precice-config.xml (2.7 KB)
log.fluid.tar (2.9 MB)


Hi @rachaelesmith,

I see that this simulation is running for quite some iterations and that you are using DisplacementDelta. I could imagine that there could be some accumulation of numerical error. Have you also tried coupling absolute displacements? Did you face any problems with that?

@rachaelesmith we recently released a new version of the CalculiX adapter (v2.19.0), you could also try if this fixes anything.

Hi @Makis , I have the same issue while simulating a FSI case using OpenFOAM and our in-house solver with preCICE. Our solver converged well but the courant number became increasingly large at around 9s and then the OpenFOAM crashed at 9.26s. The log file of OpenFOAM solver and the configuration file are attached here. Since the log file is too large, I delete some content in it. (2.3 MB)
precice-config.xml (2.6 KB)
Is it because the mesh deformation gets so large that the courant number rapidly increases and OpenFOAM crashes? Could you please share any hints on how to make the fluid mesh withstand larger deformation?

Initial mesh Final mesh

Actually, in both cases, @rachaelesmith and @Stan could you check the quality of the deformed mesh? I guess that some very skewed cells could result in the Courant number increasing.

Hi @Makis , thanks for your reply!
I used ‘checkMesh’ for the latest time and the log file has been uploaded. There are a severely non-orthogonal face and a highly skew face. Can we come to the conclusion that this is the reason why the Courant number increases rapidly?
checkMesh_final.log (3.2 KB)

Hi @Stan

To verify that hypothesis you could run the CourantNo function of the postProcess utility to get a Courant number field for the whole domain and for each timestep and contrast that with the skew / non-ortho face you obtained with checkMesh (use foamToVTK -faceSet skewFaces and foamToVTK -faceSet nonOrthoFaces to visualize them with ParaView). Look at the Co of those cells with that problematic face. That should help you determine if that’s the cause.

Could you please share any hints on how to make the fluid mesh withstand larger deformation?

In my experience, when you are having problems with the mesh’s deformation making the domain larger sometimes helps.


1 Like

Hi @Andres
Thanks for your suggestion. It’s very helpful to me. :smiley: