FSI coupling problem between Openfoam and Calculix: the 3D flexible plate

Hello everyone, I am a new preCICEer, I am trying to use Openfoam and Calculix to calculate a three-dimensional flexible plate problem. The simulation model and mesh are as follows:



I set the inlet velocity to 10m/s, the flow field diverged when the case reached the second coupling iteration step. I tried to adjust the calculation files of openFoam (including fvSchemes and fvSolution), as well as the mapping methods of preCICE file, but failed to obtain better calculation results. I don’t know how to modify this case later. Could you please give me some ideas for modification? I need your help, thank you very much.
Console for calculating divergence:

I am using Openfoam v2112 (Openfoam-adapter 1.1.0.)、Calculix 2.19、precice-2.4.0. The following are the setting files.
Job-4.inp (1.2 MB)
precice-config.xml (2.5 KB)
tube.inp (379 Bytes)
controlDict.txt (782 Bytes)
The following are the log files.
log_fluid.txt (25.9 KB)
log_solid.txt (5.6 KB)

In fact, I need to add one more point. The inlet velocity of the current example is 10m/s. When I reduce the velocity to 1m/s, the first time step converges (but the second time step also quickly diverges after two iterations). When I look at the result file through ParaView, I find that the mesh deformation of the fluid is quite bad. Is this the main reason for the current non-convergence? Is there any solution?

The case you are trying to simulate looks very similar to the 3D FSI case from OpenFOAM-preCICE: Coupling OpenFOAM with External Solvers for Multi-Physics Simulations | OpenFOAM® Journal, for which the case files are available.

I think that the mapping config is fine. Could this be a mix-up between absolute (Displacement) and relative displacements (DisplacementDelta)?

If you export the meshes, are the force values smooth?

How is the Fluid domain partitioned?

Hi, Mr. @Makis. Thank you for your reply!

I tried your method and changed the exchange data from displacement to relative displacement, but still did not get a good calculation result.

I also referred to the settings of the example in the article you sent (Mapping, fileter, etc.), but still failed to achieve good results. Divergence (openFoam Poisson’s equation) occurred after three simple iterations.

Below is the configuration file of my example. Since it has been upgraded to version 3.0, the configuration is different.
precice-config.xml (3.4 KB)

At the same time, I used vtu output and checked the relevant grids. The results as follow:

Force (iteration 2, fluid)

Displament (iteration 2, fluid)

force (iteration 2, solid)

Displament (iteration 2, solid)

From the displacement results, there are two relatively large values ​​in the upper left corner and the lower right corner. I don’t know if this is the reason why the calculation does not converge.

At the same time, I also found that if I refer to the article and change the density to 1, then no matter how I change the inlet velocity, it can converge. Why is this? Thank you very much if you can give me some advice
ρ=1,U_inlet=10
t=5e-5s

t=0.0135

And, Prof. @Makis , I have another question. Is there any difference between absolute displacement Displacement and relative displacement DisplacementDelta? Do they have any impact on stability or calculation accuracy of simulation? I didn’t find any explanation in the official preCICE documentation, so I’m looking for your help.
Thank you very much!

At least for the large displacement at the bottom: have you checked whether these points are indeed anchored?

This is what we have in the documentation at the moment, any idea how to improve it?

In the current FSI example, the adapter reads forces from preCICE and feeds displacement deltas (not absolute displacements, but the change of the displacements relative to the last time step) to preCICE.

It is typically not something you can freely choose, but something dictated by what the other solver expects, as the reference state changes. From a modelling perspective, I assume there can be situations where this can make a difference, but I strongly doubt the reference state is the reason of your issue. One just needs to be consistent in both solvers.

(just Makis, no Prof or Dr, and generally don’t worry about titles in this forum :slight_smile: )

Hi, @Makis , Thank you for your reply!

In fact, this may be caused by the wrong unit setting in Calculix. Since the calculation of structural finite elements does not include units, when I set up the case, the Young’s modulus of the structure uses MN, m, but the density uses kg, m. This caused the structure in my case to be too soft, thus causing divergence. This is also what puzzled me when I observed the structure visualized in Paraview before, because I normally set the style modulus to 210GPa for steel material, but a obvious mesh displacement occurred at the order of e-3s (Even if the fluid is set to air, and inlet velocity is 0.5m/s).

Now that all units in both software are set to SI units, the simulation should work properly!

But I also found a problem. When I set the fluid to water (density 1000, kinematic viscosity e-6), it actually still diverged after convergence in the first time step. I guess it was the larger force brought by the high-density fluid that caused the soft structure displacement to increase, which in turn led to divergence.

Thank you again for your help during this time!

1 Like

Hi Jimmy,
as you said, the high density/large inlet velocity would make the problem numerically more challenging.

You can play with the parameters in the acceleration configuration a bit: for example, use different “max-used-iterations” to manage the reuse of old information and try QR1 filter instead of QR2, which might be more robust for the demanding case. The best configuration for IQN-ILS is case-dependent and the current one might not be the most robust setting.

2 Likes

Hi, @Fujikawas. In fact, I have used QR1 for my current example, which is indeed more stable than QR2. I’ll try to adjust the “max-used-iterations” in the future. Thank you very much!

1 Like