In this project a FSI coupling was established together with @louisgag to investigate the influence of rotor blade deformation of cycloidal rotors and its effect on the rotor efficiency.
The preCICE OpenFOAM adapter uses the
pointDisplacement function of OpenFOAM to couple motion data. However, simulating rotating bodies of a cyclorotor is not yet possible with this approach in OpenFOAM. Therefore an additional OpenFOAM class was added to couple the rotation motion directly from the MBDyn adapter to OpenFOAM.
The work was part of a Bachelor Thesis conducted at the Institute of Aerodynamics and Gas Dynamics Stuttgart, Germany (link).
A dataset of the simulation results including the base case setup can be found here:
Schließus, Julian and Gagnon, Louis, Data for: Create a Fluid-Structure Simulation Framework for Cycloidal Rotors, DaRUS, 2022, https://doi.org/10.18419/darus-2232
The results have also been presented at the HPC-Asia 2022 MMCP workshop (abstract, video).
The following software / adapters were used:
- preCICE OpenFOAM adapter
- adjusted preCICE MBDyn Adapter, developed by Hagen Leipprand at the Institute of Aerodynamics and Gas Dynamics Stuttgart, Germany
Python 3.7.6 to process the data between MBDyn and preCICE
C++ to couple the rotation motion of the rotor via a socket connection from the MBDyn adapter to OpenFOAM
OpenFOAM v2012 as fluid solver
MBDyn as structure solver (utilized branch)
@JulianSchl since others often ask how to do FSI of rotating bodies, could you please give a summary of your research on which approaches/situations are currently working with the (unmodified) OpenFOAM-preCICE adapter? For example, does an overset grid approach (where the body is immersed into the inner, rotating grid) work? From your HPC Asia abstract, I understand that you followed this approach.
sorry for my late reply
First of all I have to point out that it is not possible to couple the (rotaitional) movement of a body with preCICE, so you can only couple the parameters suggested here (e.g. deformations, forces, …).
You either have to set a motion via the OpenFOAM configuration files or couple the motion via a custom link between you solvers. In my case I used a TCP socket connection to couple the motion data betwenn my structure and CFD simulation.
Having in mind that you have to deal with the motion as mentioned, with preCICE v2.2.0 it is possible to rotate one single body using the
solidBodyMotion while coupling deformations with the
displacementLaplacian solver via preCICE.
However it is not possible to move multiple bodies with the OpenFOAM v2012
solidBodyMotion while simultaniously deforming the bodies with the
displacementLaplacian solver. The problem is that for such cases OpenFOAM provides the
multiSolidBodyMotionSolver, which is not supported by preCICE (yet ).
To handle this issue, @louisgag created a coustomized version of the
solidBody motion solver, the
With this adjustment OpenFOAM can handle the motion of multiple moving zones while using the
So I’m not sure if I understand your explanation of “overset grid” correctly, but the simulation of a single moving/rotating body over a background grid (chimera method) works fine with preCICE. If you want to move the background mesh additionally to a body, you may look at my github case where I implemented this with the
I’m trying to use overset mesh in OpenFOAM to study the possible large deformations of marine structures under wave loads. However, I don’t know how to set correct boundary conditions for
the overset patch and
the fluid-solid interface. Could you please share your case setting in OpenFOAM?
Thank you for sharing your case setting! it will be of great help to me
When you say simulate the possible large deformations of marine structures using overset mesh, do you mean that you the overset mesh can deform to accommodate the deformation of the structures, while the background mesh doesn’t change? If so, can I please ask you which improvement did you made to the overset library in OpenFOAM, is it the library provided by @JulianSchl @luisgag? And then couple the external solver for the solid part?
Sorry for asking so many questions, since I’m struggling with similar problems.
Sorry for the late reply.
Yes, we want the overset mesh to deform according to the deformation of the structure while the background mesh doesn’t change. If you have only one structure, you don’t have to modify the overset library in OF. Otherwise, you need to try the library provided by @JulianSchl. In our test cases using OF and our solid solver, we found that preCICE worked well for single phase simulation when adopting overset mesh, while for multiphase simulation using overset mesh, the phase fraction often went wrong and then crashed. By the way, we are not focusing on this problem currently, so I’m sorry that I cannot provide more advice to you.…
Thanks for your reply! It’s very helpful. However, I can’t download the case file from the link shared by @JulianSchl. And for this modified library, is it possible for you to share your case setting up at OpenFOAM part? For the case you mentioned.
Thank you for your help!
I found the case file which I downloaded before. Could you please provide an e-mail address? As the tar.gz package cannot be uploaded here.
Thanks a lot, just sent you a message.