I’m interested in studying the 2D FSI problem of a deformable pitching foil exposed to an incoming flow (say, for example, of air), through the coupling of OpenFOAM and CalculiX. I’ve tried a number of different approaches but have not had any success thus far. Specifically, I can set up cases in each solver and couple them with preCICE but, even when I achieve “convergence”, I can’t seem to get meaningful or even physically possible results.
As I said, I’ve tried different configurations but let me give a concrete example to make myself understood. Let’s consider the Turek-Hron FSI2 or FSI3 geometry (but not necessarily the same material parameters, non-dimensional numbers and so on). We would like to give the flap a pitching motion (i.e. flapping but without the heaving component of that motion). That could easily be achieved by giving the rigid cylinder an oscillating rotating motion and having the “leading edge” of the flap fixed to that rigid cylinder. So we could go ahead and mesh the solid, both the flap and the cylinder. Since the cylinder won’t be part (for now) of our coupling interface and we’ll make it a rigid body anyway, we can give it a small number of elements we just need to have the leading front of the flap make a rotational motion around the axis of the cylinder (nothing too large, ~10° amplitude):
(Yes, the flap mesh is coarse here, but I did so on purpose for easier visualization).
So, the simple case can be set up in Calculix alone, defining the cylinder to be a rigid body and using a user amplitude subroutine to give it that oscillating rotating motion:
Furthermore, since we write the subroutine ourselves we can give that sinusoidal amplitude a certain ramp-up. It works as intended with different amplitudes and frequencies (in CalculiX and even tested it in Abaqus).
We could then set up the case on the fluid side. Here, let’s just take the T-H FSI2 or FSI3 domain and discard the parabolic inlet profile. We’ll use a uniform profile, ramped up so that it starts smoothly. The fluid parameter are chosen so that the mass number (density of the fluid / density of the solid) and the Reynolds number are low (Strouhal number ~0.2).
We then define our preCICE config. The coupling interface will be the flap, and forces and displacements will be exchanged. For the mapping I’ve tried RBF thin plate splines, rbf-compact-tps-c2 and nearest neighbor with similar results for each one (
precice-config.xml (2.6 KB)).
We run the simulation and observe the following:
Clearly not good. I tried different mappings, changing settings in the acceleration schemes, convergence measures, etc., but couldn’t geat any noticeable improvement.
I then tried to make the cylinder part of the coupling, while still mantaining it rigid (*RIGID BODY in ccx). So I gave the cylinder a more appropriate mesh to capture its surface:
Of course, I defined the new interface in the CalculiX side of things and in the OpenFOAM side of things . I ran the case and got the following:
Here both flap and cylinder start translating upwards (even though the structure, or at least the cylinder, is fixed). Also, notice the wavy pattern at the bottom of flap and cylinder. In this case, if I run the Calculix case alone, the behaviour exhibited is the correct one (that is, the cylinder rotates and the flap flaps).
So I decided to get rid of the cylinder, mesh just the flap in CalculiX and give its edge the motion it would have fixed to the oscillating cylinder (through a kinematic coupling of that surface or making that side surface a rigid body, same result in CalculiX).
Again, I get things like this:
I have also tried with other geometries apart from the T&H one. A very similar one with a much thiner flap or even just a simple pitching foil with rounded edges fixed on one end about which it rotates:
(This is the CGX output of running it alone in Calculix).
For the above example, when coupling it with OF, just after a few milliseconds (when flow velocity is basically zero and the amplitude of the oscillating motion is likewise almost null) of simulation, OF crashes and it looks like the foil has assumed the shape of a very high normal mode. Such a mode, however, would have a frequency far far higher than that of the forced oscillation imposed (I’m modelling the foil as an Euler-Bernoulli beam).
In the past, when learning to use preCICE, I was able to successfully set up the T-H FSI2 case. Here, I’ve checked my cases, tried with different (finer and coarser) meshes, checked my preCICE configuration (using the docs and tutorials and reference) but nevertheless I wasn’t able to make any of them work satisfactorily. I’m inclined to think I am the one doing something wrong, rather than preCICE not playing nice with forced motions of this type, and thus I’m asking for help. Anything obvious from the pictures Any ideas (regarding what could be wrong or perhaps someone can think of a better approach for handling the pitching) ?
Info about my system:
OpenFOAM v7 (.org version) + adapter
CalculiX 2.16 + adapter
I’d appreciate it very much if anyone took the time to look into this and point me in the right direction.