
[Sponsors] 
December 12, 2018, 04:44 
Flow induced 3D motion OpenFoam

#1 
Member
Ilan
Join Date: Dec 2018
Posts: 37
Rep Power: 3 
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. 

December 13, 2018, 10:26 

#2 
Senior Member
Peter Baskovich
Join Date: Jul 2014
Posts: 126
Rep Power: 8 
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, 11:04 

#3 
Member
Ilan
Join Date: Dec 2018
Posts: 37
Rep Power: 3 
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, 16:24 

#4 
Senior Member
Join Date: Sep 2013
Posts: 258
Rep Power: 15 
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:
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
Why might this fail even if the mesh is still ok? You need to make sure that


December 13, 2018, 20:18 

#5 
Senior Member
Peter Baskovich
Join Date: Jul 2014
Posts: 126
Rep Power: 8 
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, 18:44 

#6 
Member
Ilan
Join Date: Dec 2018
Posts: 37
Rep Power: 3 
Thanks again for your answers.
First, I will make a kwSST 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, 09:10 

#7 
Senior Member
Join Date: Sep 2013
Posts: 258
Rep Power: 15 
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 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, 05:08 

#8 
Member
Ilan
Join Date: Dec 2018
Posts: 37
Rep Power: 3 
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, 05:48 

#9 
Member
Ilan
Join Date: Dec 2018
Posts: 37
Rep Power: 3 
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/4sL3FxMsBs Thanks ! 

November 4, 2019, 02:59 

#10  
Member
Huynh Phong Thanh
Join Date: Aug 2013
Location: Ho Chi Minh City
Posts: 97
Rep Power: 9 
Quote:
Could you share case on public? I want to test 6dof for turbine like your case. 

Tags 
3d motion, flow induced, motion dynamicmesh, openfaom6 
Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Verification of Turbulent Pipe Flow in OpenFOAM  kwSST  ajcav2  OpenFOAM Running, Solving & CFD  6  April 28, 2017 16:51 
OpenFOAM v3.0+ ??  SBusch  OpenFOAM  22  December 26, 2016 15:24 
OpenFOAM Training, London, Chicago, Munich, SepOct 2015  cfd.direct  OpenFOAM Announcements from Other Sources  2  August 31, 2015 14:36 
OpenFOAM : flow around a sphere at low Reynold number  maxou1993  OpenFOAM Running, Solving & CFD  1  July 7, 2015 06:13 
Volume flow rate boundary condition in OpenFOAM  mayank.dce2k7  OpenFOAM Running, Solving & CFD  13  August 11, 2014 21:16 