CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   Co-axial rotor help (

JulytoNovember November 11, 2010 02:27

Co-axial rotor help
Does anyone know if any of the openfoam software simulate and co-axial helicopter? I have the both rotors, but I don't know if there is a way to rotate them in the opposite directions simultaneously. Any and all help would be greatly appreciated.

Ohbuchi November 11, 2010 03:20


There is no dynamicFvMesh class suitable for your problem.
So, you have to make custom dynamicFvMesh class using examples from mixerGgiFvMesh that support only one rotating region.

Good luck!

elvis November 11, 2010 03:50


looks like a job for GGI this means you have to use the -DEV version of OpenFOAM.

The other solutions would be the overset Grid (but this piece of software is not available to ordonary people)
or "immersed boundary method" that is currently under development.

If you use a debian/ubuntu based distribution you can get compiled binaries
otherwise you have to use svn and check out the -DEV version of OpenFOAM.
Takes a little more time, but not that complicated.

Or you try a virtual machine / live DVD/ live usbstick =>read

betakv November 11, 2010 16:46

Co-axial rotor

I have solved the same problem a year ago and I used MRFSimpleFOAM for the solution of it.


JulytoNovember November 12, 2010 01:13

Ohbuchi, How easy is it to modify that particular file? Is that 1 file all i need to modify?

Vojta, MRFSimpleFOAM is static, and only shows pressure on the rotors, I want to see airflow pressure changes. I've tried that before.

Thank you all for your quick replies and help.

Ohbuchi November 13, 2010 10:33

Co-axial counter rotating rotors simulation
3 Attachment(s)

I made custom library "myCoAxialGgiFvMesh" (see attached files), and ran sample case with co-axial counter rotating two rotors.

This implementation is simple extension of mixerGgiFvMesh, I've only introducied two rotating speed (rpm1 and rpm2) and modified movingPointMask.
And the rotating region's name must be fixed as "rotor1" and "rotor2".

In dynamicMeshDict, you should define two moving slider, "moving1"
and "moving2" as follows.

dynamicFvMeshLib "";
dynamicFvMesh myCoAxialGgiFvMesh;

type cylindrical;
origin (0 0 0);
axis (0 0 1);
direction (1 0 0);

rpm1 60;
rpm2 -60;


Ohbuchi November 14, 2010 21:14

I'm sorry, but I've made some mistake in my code.
It's rotating in twice speed than specified. And it will not work in case of abs(rpm1)<>abs(rpm2).
The bug is in update() function of myCoAxialGgiFvMesh.C
Now I'm fixing it. and I will upload fixed version soon.

Ohbuchi November 15, 2010 01:35

updated library code
1 Attachment(s)
Here is bug-fixed library code.
I've introduced another movingPointMask for rotor2.

JulytoNovember November 16, 2010 20:25

Thank you, Ohbuchi-san, will will implement your program tonight.

Edit: Ohbuchi-san I've combined my to rotors into 1 file. Is it possible to make multiple cellSets from the cellSetDict file? How did you create two diiferent cellZones?

All times are GMT -4. The time now is 16:14.