Fin flutter simulation displacement problem

Hi, I am trying to run an FSI simulation (OpenFOAM 7, Calculix 2.16) in order to verify if flutter occurs to my fin. I tried to use both rhoPimpleFoam and rhoCentralFoam but after about 4.5e-5 [s] (with timestep 1e-7) Courant number rises from 0.003 to 30 in one iteration and silmutation fails. After i looked closer to mesh i noticed some strange behaviour of the cells. Is it possible that this is the reason of the Courant number rising? What can I change in order to make mesh behave more “realistic”?
Quick summary:
Open Foam:
solver: rhoCentralFoam/rhoPimpleFoam
timestep: 1e-7
ddt: Euler (transient)
turbulence: laminar
mapping: nearest-neighboor
Boundary condtitions
Photo of streangly acting mesh


From the details you give it is not easy to guess what could go wrong. You could try a more accurate mapping algorithm in preCICE, nearest projection or RBF.


Thanks for response,
I did try the nearest-projection but the effect is still the same.
Here I uploaded some more photos and data of the case: .

In the picture FINsim.jpg You can see the case from inlet perspective. The problem itself happens after about 4.5e-5 [s] of the simulation. I also tried running the case without the CalculiX for 0.01[s] so the fields were intialised. Then i started simulation from that time with CalculiX and something strange happened to the pressure field (t=0.01015).

Do You have any idea why does the pressure field get so distributed? I started to think that this strange behaviour of the pressure field is the main cause of the problem.
Thanks in advance,

Hi Kacper,

To better understand your case, the iterations and convergence log files of preCICE would be good. Also, vtk export of the coupling meshes.
Did you see that you need additional input files if you want to use CalculiX with nearest-projection mapping?
In principle there are always many things that can go wrong. Too many for any quick guess.


Thanks for the reply, and my apologies for answering so late.
I added all additional files but somehow I missed the option mesh-nodes-with-connectivity and there was only mesh nodes. After changing this line simulation worked for a longer time but still diverges.

Here are logs files:

Here I add a video showing the pressure field on the fin. As You can see the displacement looks strange and this disturbs the airflow.

Additionally I also add link to simulation folder with simplified geometry which also diverges:

It seems that your coupling is physically very weak (e.g. large Re). I would recommend to not use quasi-Newton here, but simply a constant underrelaxation. Furthermore, try to make the convergence measures stricter.

  <time-window-size value="1e-7" />
  <max-time value="1."/>
  <participants first="Fluid" second="Calculix"/>
  <exchange data="Forces0" mesh="Solid" from="Fluid" to="Calculix"/>
  <exchange data="Displacements0" mesh="Solid" from="Calculix" to="Fluid" />
  <max-iterations value="100"/>
  <relative-convergence-measure limit="1e-4" data="Displacements0" mesh="Solid"/> 
  <relative-convergence-measure limit="1e-4" data="Forces0" mesh="Solid"/>
  <extrapolation-order value="0"/>
    <relaxation value="0.5"/> 

This is the solution I needed. The deformation of the model looks realistic and the simulation is able to run without any errors.
Thank You very much for quick and professional support,

1 Like

Hi kynnx,

I am also trying an FSI simulation with OpenFOAM and CalculiX, with rhoCentralFoam as fluid solver. It seems this solver is not yet suppported by preCICE. Did you make some modifications in the openFOAM adapter to run your simulation ? If it is possible for you, could you share your code ?

Hi Marie,
I did not do any modifications in the OpenFOAM, just typed solver type in controlDict: application rhoCentralFoam;

I receive this message:

—[preciceAdapter] [DEBUG] Unknown solver type. Determining the solver type…
—[preciceAdapter] [DEBUG] Automatically determined solver type : compressible

but the solver runs with no errors and the solution seems possible.

You can share Your logs and maybe we will be able to find an error. Also I do apologise for my late response.


1 Like

Hi Kacper,

Thanks for your kind reply.
My problem was stupid and came from the displacement field, but I was finally able to solve it (I was using wrong field for openFOAM cellMotionU instead of pointDisplacment).

Thank you again !


@kynnx this is the normal behavior when not asking for a specific solver type. Nothing to worry for here. But I understand that the “Unknown solver type” part is misleading, I will remove it.

@marie_shka welcome! :smiley: Good to know that this is a problem one may run into. Please let us know if we can improve the documentation regarding this anywhere.

1 Like