CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Propeller dynamics/body force model (https://www.cfd-online.com/Forums/openfoam-solving/71705-propeller-dynamics-body-force-model.html)

andrea.pasquali May 30, 2010 12:27

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

SD@TUB June 1, 2010 08:11

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

andrea.pasquali June 1, 2010 08:28

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

SD@TUB June 4, 2010 09:04

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

jaswi October 2, 2012 11:24

Broken links for the literature provided by Eric
 
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

be_inspired June 4, 2014 06:27

1 Attachment(s)
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?

mattwright1234 February 18, 2015 11:41

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

hirota September 9, 2021 03:46

Dear all, please tell me how to solve this.
 
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.

SD@TUB September 9, 2021 15:43

Quote:

Originally Posted by hirota (Post 811886)
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

hirota September 16, 2021 03:49

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.

SD@TUB September 21, 2021 17:04

Quote:

Originally Posted by hirota (Post 812364)
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


All times are GMT -4. The time now is 20:50.