# Flow induced 3D motion OpenFoam

 Register Blogs Members List Search Today's Posts Mark Forums Read

December 12, 2018, 03:44
Flow induced 3D motion OpenFoam
#1
Member

Ilan
Join Date: Dec 2018
Posts: 52
Rep Power: 7
Dear Foamers,

I am a PhD student who begun his thesis 3 months ago using OpenFoam.
I am working on tidal current turbines and have access to a big computational power. Thus, as first step for my thesis, I would like to run a 3D flow induced motion for my turbine. I don't need to take the deformation into account.

Thing is, I only found really simple cases of flow induced motion like the wingmotion tutorial using the 6 DOF solid solver. By the way, I struggle understanding how it is working : with out even touching the case, I have got pression waves up and downstream due to the mesh deformation (see attached). If I remove some constrain/restrain, the calculation diverges in some steps... and with no apparent reason (mesh still good). Moreover, I can't find any documentation about the sixDoFRigidBodyMotion motionSolver like the equations.

My question is : should I move to Foam extend for the FSI solveur even if i don't want to take into account deformations ? I am afraid this could be a really heavy calculation cost whithout need.

My other and last option is to use pimpleDyFoam but writing code to implement my speed depending of the previous step pression on blades. For now, I didn't find such a code.

If someone has any advice for me, I'll take it.

Thanks and happy Foam.
Attached Images
 Deformation.jpg (75.3 KB, 196 views)

 December 13, 2018, 09:26 #2 Senior Member   Peter Baskovich Join Date: Jul 2014 Posts: 127 Rep Power: 11 Hi Ilan, I think you need to take a half a step back and first make a clear goal for what information you would like to obtain from your simulations. It's all very exciting to jump straight in and throw all the tricks at the problem to make it as realistic as possible but it's very often not necessary. How far down the rabbit hole do you want to go, resistance load curves, rotary inertia? Or could you get the same information running a batch of pimpleDyM cases with a matrix of velocities and RPMs. This way you can build a map of the turbine efficiency.

 December 13, 2018, 10:04 #3 Member   Ilan Join Date: Dec 2018 Posts: 52 Rep Power: 7 Hey Peter, First of all, I want to thank you for your answer. You are right, I should have explain why I need that kind of simulation : My thesis subject is the study of the impact of fouling on turbines wake and performances. To do so, I will have to build another kind of model ( I wanted to focus on LES/Vortex Method until I realized that because of fouling, Kutta's condition will not be satisfied, but here is not the question) In order to so, I have to build a classic CFD model to valid my futur calculation. For the wake studie, there is no problem : I already computed a wind turbine using PimpleDyMFoam and the calculation seems stable (I didn't ran it for long, il was just a test). But, I can't estimate performances within imposing a rotational speed. This is physical incorrect... Right ? That's why I am interesting to flow induced motion with sixDoFRigidBodyMotion. As I said, an other option is to use pimpleDyFoam but writing code to implement my speed depending of the previous step pression on blades. I think that this kind of approche is correct, but I don't know how to implement my speed using OpenFoam's results. What would you choose ? sixDoFRigidBodyMotion or pimpleDyFoam with home made code ?

 December 13, 2018, 15:24 #4 Senior Member   Join Date: Sep 2013 Posts: 353 Rep Power: 20 Now before you should think about that topic at all make sure you know which flow solver to use (compressible/incompressible/...), which turbulence model etc. Afterwards make sure you have a decent mesh and have run a simulation on that mesh that converges, is accurate and captures what you need. Now to your question! There are 3 options in increasing order of computational effort: NO FSI - just move the wall with a mesh motion solver. (Works with every DyM Solver like pimpleDyMFoam - or in recent OF versions pimpleFoam) rigid body FSI (again: Works with every DyM Solver) Full FSI (needs external software or the fsi library in foam extend) Now full FSI is to expensive for what you want to do unless you are interested in stresses inside your solid. OpenFOAM has two libraries for rigid bodies. sixDoFRigidBodyMotion and rigidBodyDynamics. These are nearly identical, however the rigidBodyDynamics library can solve for more than one rigid body. The sixDoFRigidBodyMotion on the other hand can be used as a boundary condition for every mesh motion solver. So there are small differences and they might at some point in the feature be consolidated into one. The rigid body fsi works with these steps calculate the rigid body motion (including forces from the flow at the given patch) move the points of the given patch by the distance calculated in 1 use a mesh motion solver to move all the internal mesh nodes solve the flow The standard mesh motion solver hard coded into both libraries is a slerp interpolation. You can however use any motion solver you'd like and replace the boundary for your object with sixDoFRigidBodyMotion. Why might this fail even if the mesh is still ok? You need to make sure that You use strong coupling. Solve flow and rigid body motion more than once per time step to converge the motion. Hence use pimple (nOuterCorrectors >1) and (moveMeshOuterIters to solve the rigid body motion more than once) and use relaxation for both solvers. Make sure to specify nIter inside your dynamicMeshDict for implicit time integrators like newmark and crankNicolson so that the rigid body is solved more than once per time step Make sure that you can solve the rigid body motion with the time step used. The courant number limits only the fluid side. Undamped rigid bodies however might need a much smaller time step. hgcastro, msaravia, acgnipper and 6 others like this.

 December 13, 2018, 19:18 #5 Senior Member   Peter Baskovich Join Date: Jul 2014 Posts: 127 Rep Power: 11 Here is how to analyse the turbine with pimpleDyMFoam. Have a look at the propeller tutorial, it has lots of useful info and I think it's almost exactly what you need: https://github.com/OpenFOAM/OpenFOAM...Foam/propeller Of course you should be able to find it in your local installation too. The important part is the forces function included in controlDict, this allows us to calculate the moments and forces on the turbine face, and since we specified the rotation speed in the dynamicMesh dictionary, calculating power is trivial. If you do a few runs of this, say 5 different RPM points for each tidal flow rate and record the power, you will start to develop a 3D map of flow rate vs RPM vs Power. The first time you will have to play around to find peak power, or close enough to interpolate it. For consecutive tidal flow rate points you will be able to make a good guess at appropriate RPMs. To get the flow rate through the turbine can be a bit more tricky. If the turbine is ducted then all you need to do is make a faceZone that covers all the flow that will go through the turbine and calculate a flow rate. There are a number of tools for this like the fieldAverage objects (used in a similar way to forces). If the turbine is not ducted then the far field velocity can be used. Thinking about it, I think that the map should be far field Velocity vs RPM vs Power. Local flow rate in the turbine does not make sense to normalise against.

 December 16, 2018, 17:44 #6 Member   Ilan Join Date: Dec 2018 Posts: 52 Rep Power: 7 Thanks again for your answers. First, I will make a k-w-SST simulation with pimple in a very short time. Then I go into LES, also with pimpleFoam. After consulting my PhD professor, we decide to choose sixDoFRigidBodyMotion (or rigidBodyDynamics if we decide, after all to implement more mooving solids). I have some question concerning this now. 1) Do you know someone who has a working tutorial of sixDoFRigidBodyMotion. As long as wingMotion is diverging, I have 0 example. 2) Do you know a efficient code to get Moment of Inertia and center of mass of an STL file ? 3) I see that the error in the tutorial is goming from de mesh which is deformed. Is it possible to merge the FSI solver with an AMI ? Like define a cylinder which has a rotation speed induced by the fluid forces on blades. 4) How can I play with time step/iteration on the solidsolver ? Is it also in the control dict (a good documentation will suffice)? Thank you again, and have a good day!

 December 17, 2018, 08:10 #7 Senior Member   Join Date: Sep 2013 Posts: 353 Rep Power: 20 1) Which OF Version are you using? There was a bug in v6 that got fixed after release. 2) Code: surfaceInertia -help surfaceInertia file.stl 3) Yes that is possible, but you need to use overSet instead of AMI. 4) The time integrator of the solid uses the fluid time step. You can use nOuterCorrectors though to solve it more than once per time step

 December 18, 2018, 04:08 #8 Member   Ilan Join Date: Dec 2018 Posts: 52 Rep Power: 7 Thank you very much for your help : I finally manage to rotate my cylinder using the forces on my 3D blades. It is mooving !! If people want to do the same kind of trial they should use minger case following this link: Rigid Body Mesh Motion + 6DoF I ran my simulation on openfoam 2.3.0, but the case is applicable on 6.6 with minor changes. New solver to use is sixDoFRigidBodyMotion as Bloerb told me. Now that technical problems are "solved" thanks to you, I can do a bit of physics ! I think that I will have some complementary questions on the way to check the convergence in OpenFoam, but I guess I have to edit a new post for that, right ? Thank you again, and Happy Foam !

 January 3, 2019, 04:48 #9 Member   Ilan Join Date: Dec 2018 Posts: 52 Rep Power: 7 Hello, I already repost on this subject but I don't have any reply on the other post. So I take my chance here : I succefully compute the rotation of the 3D turbine using the flow forces. But I struggle with my AMI : there is a pressure gap between my domains. Do you have any idea how to solve this ? Here is my simulation results ( 2D cut) : https://youtu.be/4s-L3FxMsBs Thanks !

November 4, 2019, 01:59
#10
Senior Member

Huynh Phong Thanh
Join Date: Aug 2013
Location: Ho Chi Minh City
Posts: 105
Rep Power: 12
Quote:
 Originally Posted by Magistrane Hello, I already repost on this subject but I don't have any reply on the other post. So I take my chance here : I succefully compute the rotation of the 3D turbine using the flow forces. But I struggle with my AMI : there is a pressure gap between my domains. Do you have any idea how to solve this ? Here is my simulation results ( 2D cut) : https://youtu.be/4s-L3FxMsBs Thanks !
Hi Magistrane,
Could you share case on public? I want to test 6dof for turbine like your case.

 Tags 3d motion, flow induced, motion dynamicmesh, openfaom-6