# Propeller dynamics/body force model

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

 May 30, 2010, 12:27 #21 Senior Member   Andrea Pasquali Join Date: Sep 2009 Location: Germany Posts: 142 Rep Power: 16 Hello everybody, i'm interesting to body force analysis. What is the dimension "magnitude" in the code? Is it possible add the rotational term to the thrust? Maybe could be correct using MRF + body force to the same volume of cells? Thanks for any reply Andrea __________________ Andrea Pasquali

 June 1, 2010, 08:11 #22 Member   Stefan Join Date: Jan 2010 Location: Kiel, Germany Posts: 81 Rep Power: 16 Hello Andrea, the dimension of magnitude is L^4/T^2 (force per density) as you can guess from: Code: ```IOobject ( "bodyForce", ... dimensionedVector("zero", dimForce/dimVolume/dimDensity, vector::zero) );``` I added tangential forces on every involved cell to approximate the rotational effect of the propeller. What you intend with adding a 'rotational term to the thrust'? ~Stefan

 June 1, 2010, 08:28 #23 Senior Member   Andrea Pasquali Join Date: Sep 2009 Location: Germany Posts: 142 Rep Power: 16 Hi Stefan, thank you for you reply! This is what I mean! In the code posted dy Eric there is just thrust, is it? I changed t to put a propeller in whatever direction I want, can you help me to add also tangential force to the involved cells? Thanks Andrea __________________ Andrea Pasquali

 June 4, 2010, 09:04 #24 Member   Stefan Join Date: Jan 2010 Location: Kiel, Germany Posts: 81 Rep Power: 16 Hello Andrea, maybe i could... The code above is an example by Eric to implement a uniform force distribution in direction of a selectable directionVector. For testing you could also calculate a uniform tangential force across the propeller radius with a given magnitude and an tangential vector which point for every cell in tangential direction of the local position vector (from propeller centre to each cell centre). It is a little bit tricky, but with some careful considerations you will calculate the appropriate direction with basic trigonemtrical functions. The local position vector to cellI ist described by r and phi according to the local point of origin (propeller centre). In case of a directionVector = (1 0 0), the tangential vector, say tan' schould be something like this: tan'(x_i,z_i)=(cos[phi],sin[phi])^T with phi=arctan(y_i/z_i) It is a good help to plot your developed functions and cecking the rightness. Lately in paraView you see, if the tangential vectors are correct. With a factor, say f you are able to define the rotation direction of the propeller: tanrot'=f*tan'(x_i,z_i) with f={-1,1} x_i,z_i are the global cell centre positions, if the global point of origin is (0 0 0) and y_i=0 (one central screw propeller). If the above things will working, you can determine the ratio from axial and tangential forces by a propeller nomogram (e.g. standard series). Additionaly a radial distribution of the magnitudes could be implement (see PNA Vol.II for qualitative radial circulation distribution of an open propeller). I hope that helps a bit! ~Stefan

 October 2, 2012, 11:24 Broken links for the literature provided by Eric #25 Senior Member   Join Date: Mar 2009 Posts: 248 Rep Power: 18 Hi Eric Your post dated : February 26, 2010, have link to some articles. These links seem to dead now. If possible please provide with the new links to these articles. Thanks a lot jaswi

June 4, 2014, 06:27
#26
Senior Member

M. Montero
Join Date: Mar 2009
Posts: 153
Rep Power: 17
Hi Tim,

I think your problem is the same that mine and the wiggles happen "always"
http://www.cfd-online.com/Forums/ope...l-wiggles.html

"Discrete body forces are used in
the present context to model the influence of wind turbines on
the flow. In
order to overcome the pressure wiggles introduced by discre
te body forces,
one approach is to smooth out the body forces by using a Gaussi
an distri-
bution instead of a Dirac delta distribution
"
]
Using rotorDiskSource the problem is that wind speed is not calculated correctly in each cell so the angle of attack is incorrect, the force calculation, the wake....
Other option to solve the problem is to modify the Rhie-Chow algorithm.....

Any help?
Attached Images
 rotor_detail.jpg (24.7 KB, 50 views)

Last edited by be_inspired; June 6, 2014 at 07:22.

 February 18, 2015, 11:41 #27 New Member   Matt Wright Join Date: Feb 2015 Posts: 5 Rep Power: 11 Hi, I'm new to OpenFoam and I'm wondering if there is a way to implement the localised momentum sources in OpenFoam 2.3.0, is the code any different to the OF 1.6 Version. Also, how would you create the BodyForceDict file? Many Thanks Matt

 September 9, 2021, 03:46 Dear all, please tell me how to solve this. #28 New Member   hirota tomohiro Join Date: Jun 2021 Posts: 16 Rep Power: 4 Hello everyone. What I am currently trying to do is to study the flow around the hull taking into account the rotation of the propeller. I think that calculating the propeller and hull as a single unit is very costly and unrealistic. Therefore, we are considering alternative methods. The methods we are currently considering are 1. First, we calculate the propeller alone in a uniform flow. 2. Next, together with the hull model, we will place a simple propeller model (disk shape?) in place of the complex propeller model. Instead of the complex propeller model, place a simple propeller model (disk shape?) in its original location. 3. Based on the result of step 1, a volume force is added to the simple propeller model (disk shape?). I would like to add the volume force to the simple propeller model (disk shape?) and calculate around the hull. Currently, I have completed the calculations in step 1 using both AMI and MRF methods, and I am wondering at what point to add the volume force. What methods exist for approaching this in openfoam? I'm using OpenFOAM-4.x. I feel that this is a difficult problem that I cannot solve without your help. Thank you very much for your help.

September 9, 2021, 15:43
#29
Member

Stefan
Join Date: Jan 2010
Location: Kiel, Germany
Posts: 81
Rep Power: 16
Quote:
 Originally Posted by hirota Hello everyone. What I am currently trying to do is to study the flow around the hull taking into account the rotation of the propeller. I think that calculating the propeller and hull as a single unit is very costly and unrealistic. Therefore, we are considering alternative methods. The methods we are currently considering are 1. First, we calculate the propeller alone in a uniform flow. 2. Next, together with the hull model, we will place a simple propeller model (disk shape?) in place of the complex propeller model. Instead of the complex propeller model, place a simple propeller model (disk shape?) in its original location. 3. Based on the result of step 1, a volume force is added to the simple propeller model (disk shape?). I would like to add the volume force to the simple propeller model (disk shape?) and calculate around the hull. Currently, I have completed the calculations in step 1 using both AMI and MRF methods, and I am wondering at what point to add the volume force. What methods exist for approaching this in openfoam? I'm using OpenFOAM-4.x. I feel that this is a difficult problem that I cannot solve without your help. Thank you very much for your help.
Hi,

its been a while that I implemented body forces to approximate a real propeller. In modern OF versions one choice would be using a function object. Or you may use the native API rotorDiskSource, see
https://www.openfoam.com/documentati...iskSource.html

There should be an example available online from Chalmers university on how to use it for a ship propeller.

Hope that points into the right direction.

/Stefan

 September 16, 2021, 03:49 #30 New Member   hirota tomohiro Join Date: Jun 2021 Posts: 16 Rep Power: 4 Hi Stefan. Thanks for your reply. First of all, I'm a newbie when it comes to dealing with body forces, so I apologize for any inconvenience this may cause. There are a few things I would like to confirm. What has been discussed by stefan and others is Are you saying that you have rewritten the code so that the acutuator-disk generates the general volume force that the propeller would generate without the pre-calculated results of the propeller? Is this a little different from my way of doing things, which is to pre-calculate the propeller only and then use the result to give the volume force to the actuator-disk? I would appreciate it if you could enlighten me in my ignorance. By using a function object, do you mean that there is a way to give the result of the calculation as a volume force to the specified cell zone without rewriting the code? I looked at some papers from Chalmers University, but I found that it requires a lot of rewriting of the code, which is very scary for me as a beginner in rewriting code. If I have to rewrite the code, I am prepared to do so, but I am an inexperienced person who would like to avoid it if possible. I would appreciate it if you could help me with my question.

September 21, 2021, 17:04
#31
Member

Stefan
Join Date: Jan 2010
Location: Kiel, Germany
Posts: 81
Rep Power: 16
Quote:
 Originally Posted by hirota Hi Stefan. Thanks for your reply. First of all, I'm a newbie when it comes to dealing with body forces, so I apologize for any inconvenience this may cause. There are a few things I would like to confirm. What has been discussed by stefan and others is Are you saying that you have rewritten the code so that the acutuator-disk generates the general volume force that the propeller would generate without the pre-calculated results of the propeller? Is this a little different from my way of doing things, which is to pre-calculate the propeller only and then use the result to give the volume force to the actuator-disk? I would appreciate it if you could enlighten me in my ignorance. By using a function object, do you mean that there is a way to give the result of the calculation as a volume force to the specified cell zone without rewriting the code? I looked at some papers from Chalmers University, but I found that it requires a lot of rewriting of the code, which is very scary for me as a beginner in rewriting code. If I have to rewrite the code, I am prepared to do so, but I am an inexperienced person who would like to avoid it if possible. I would appreciate it if you could help me with my question.
Hi again,

No problem! Such a task takes time.
Unfortunately, I am not up-to-date what latest options you might have with a most recent version of OF, but I guess a little coding is - at least - still required.

Before the technique of 'function objects' was introduced in OF the only option was to adapt a given solver i.e. pimpleFoam to add source terms for body forces and to define where these forces shall apply.
With 'function objects' you can use a given OF solver and add own features as a function object that is compiled during run-time.

Using a cell set to pre-select cells where body forces shall be active is the right way.
The complexity of the propeller model depends on your needs. I used a weekly coupling model by determing the advance speed and J at the propeller plane from a resistance case and then used the KT at this J of a selected propeller to get the thrust to be used as a body force. This is maybe similar to your way.

/Stefan

 Tags momentum disk, propeller, propulsion