CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

MRF foam problem

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 29, 2013, 05:12
Default MRF foam problem
  #1
New Member
 
Join Date: Oct 2013
Posts: 12
Rep Power: 12
Hennet_m is on a distinguished road
Hi everybody,

I am a pretty new user of OpenFoam and I will use this software to optimize the rotor of helicopters.

Well, I try to simulate a 3D rotating flow around a NACA0012 extruded on 16 meters.

In a first step, I have used Openscad for the 3D blade rotor and I have saved it in STL format. This file is in
constant/triSurface.

In blockMeshDict, I have created a big boxe and my 3D blade is in the center of the box.
The command blockMesh gives me the first mesh.

The commande surfaceFeatureExtract -includedAngle 150 constant/triSurface/rotor.Stl features extracted correctly
all points of the rotor.

In the snappyHexmeshDict, I have created severals zones in the geometry:

geometry
{
rotor.stl
{
type triSurfaceMesh;
name rotor;
}

refinementBox
{
type searchableBox;
min (-3.0 -1.0 -2.0);
max (3.0 1.0 20);
}

cylinder_search
{
type searchableCylinder;
point1 (0.5 -1 0);
point2 (0.5 1 0);
radius 20;
name cylinder_search;
}


};

In the refinementSurfaces, I have set:

refinementSurfaces
{
rotor
{
// Surface-wise min and max refinement level
level (4 5);

}

cylinder_search
{
level (2 2);
cellZone MRF;
faceZone MRF;
// cellZoneInside inside;
zoneInside true;
}

}

In refinementregion:

refinementRegions
{
refinementBox
{
mode inside;
levels ((1E15 2));
}
// cylinder_search
// {
// mode inside;
// levels((1E15 2));
// }

}

After I have done the command: snappyHexmesh -overwrite, the results seems to be ok.

I have big problems for the boundary conditions. When I execute the command simpleFoam to simulate the flow,
simpleFoam says me that the keybord "outlet" is undefined in the dictionnary. This is strange because this
boundarycondition is already defined...

Could somebody can help me to solve this problem? It will be very useful for me. You can find the entire case in
the attached file.

Thanks you very much,

Best regards,

Martin.

Ps: my english is not very fluent, I am French.
Attached Files
File Type: zip 3d_rotor_MRF.zip (22.7 KB, 20 views)
Hennet_m is offline   Reply With Quote

Old   December 1, 2013, 23:10
Default
  #2
Senior Member
 
Join Date: Aug 2013
Posts: 407
Rep Power: 15
Antimony is on a distinguished road
Hi,

I took a look at your case.

The issue is that in the 'p' file, you have missed out a semicolon after "value $internalField" for 'inlet'.

Put in the ; and you should be good to go I guess.

Regards,

Antimony
Antimony is offline   Reply With Quote

Old   December 2, 2013, 09:34
Default
  #3
New Member
 
Join Date: Oct 2013
Posts: 12
Rep Power: 12
Hennet_m is on a distinguished road
Hello Antimony

Thanks you for your answer, it helps me a lot. Now, the case seems to work and I have changed the boundary conditions.
It appears that I have correctly the rotation of the flow but I have some difficulties concerning the initials conditions.
Moreover, to make my simulation, I use SimpleFoam + fvOption. The fvOptions files included these lines:
MRF1
{
type MRFSource;
active true;
selectionMode cellZone;
cellZone rotor_OpenSCAD_Model;

MRFSourceCoeffs
{
origin (0.5 0 0);
axis (0 1 0);
omega 0; //rad per sec = 0 rpm
}

Do you agree whis this file ? (CellZone= name of the patch which is in rotation? )
It appears that when I change the value of omega, I don't notice any differences.

I have also declared a MRFZone file but when I execute MRFSimpleFoam, I have this error message:
-->FOAM FATAL IO ERROR
Expected a '(' while reading VectorSpace<Form, Cmpt, nCmpt>, found on lines 25 the word 'origin'

I noticed that I have this error when I try to run the mixerVessel2D tutorial.
Do you know if it is a bug?

Thanks a lot,
Best regards,

Martin
Hennet_m is offline   Reply With Quote

Old   December 2, 2013, 09:38
Default
  #4
New Member
 
Join Date: Oct 2013
Posts: 12
Rep Power: 12
Hennet_m is on a distinguished road
Sorry, Please find attached the case =)

Thanks

Martin
Attached Files
File Type: zip 3d_rotor_MRF.rar.zip (24.4 KB, 17 views)
Hennet_m is offline   Reply With Quote

Old   December 2, 2013, 21:28
Default
  #5
Senior Member
 
Join Date: Aug 2013
Posts: 407
Rep Power: 15
Antimony is on a distinguished road
Hi,

Unfortunately, I am still on OF v2.1. So I really don't really have much idea about why you might be having this issue.

Sorry.

Regards,

Antimony
Antimony is offline   Reply With Quote

Old   December 3, 2013, 09:54
Default
  #6
New Member
 
Join Date: Oct 2013
Posts: 12
Rep Power: 12
Hennet_m is on a distinguished road
Hi!

Thanks you for your answer! I am also on OF 2.1. Concerning the rotating case, I have improved the work and I think that the results are better.

For the rotating initialisation, I have put, in the 0/U file the rotating boundary:

rotor_OpenSCAD_Model
{
type rotatingWallVelocity;
origin (0.5 0 0);
axis (0 1 0);
omega constant 8.25;
}

This condition, coupled at simpleFoam, correctly induced a rotating movement. However, I am not fully ok concerning the boundaries conditions. If someone has some time, could him have a look at this case and validate it?

Thanks by advance,

Best regards,

Martin
Attached Files
File Type: zip 3d_rotor_MRF.rar.zip (19.4 KB, 14 views)
Hennet_m is offline   Reply With Quote

Old   December 3, 2013, 21:48
Default
  #7
Senior Member
 
Join Date: Aug 2013
Posts: 407
Rep Power: 15
Antimony is on a distinguished road
Hi,

OK. If you are using OF v2.1, then we are on the same platform then.

Well from what I understand, there are two ways to go about this.

1. If you are interested in only a rotational motion, like that of a wheel, then you can use the rotatingWallVelocity. For this you can just use the simpleFoam solver.

2. If you are interested in something like a stand fan where you need the suction and throw to be in particular directions, then it would seem that MRFSimpleFoam is the way to go. For the object that is going to be rotating (like the blades of the fan), you can just set fixedValue and uniform (0 0 0). The rotational aspect is taken care of by the definitions in the MRFZones file. The origin is preferably the center of the region that is going to be rotating and the axis is with respect to the overall origin (0 0 0)

Whether this is what is intended, I do not know. This is what I observed when I tried both.

Again a word of caution. This will work in OF v2.1 and NOT in OF v2.2. As far as I understand, v2.2 has stopped having separate solvers like MRFSimpleFoam and is instead made into a version with simpleFoam itself (and is activated with the fvOptions file)

Hope this helps.

Regards,

Antimony
Antimony is offline   Reply With Quote

Old   December 4, 2013, 12:15
Default
  #8
New Member
 
Join Date: Oct 2013
Posts: 12
Rep Power: 12
Hennet_m is on a distinguished road
Hi, thanks you for your answer.

In fact, I want to model a flow generated by an helicopter rotor. According to you, simpleFoam seems to be the correct choice.
Concerning my calculations, I have a little problem for the initials conditions and particulary, the pressure initial condition.

Because I model an incompressible flow, I have set up this file for the initialization of the pressure:


internalField uniform 0;

boundaryField
{
inlet
{
type zeroGradient;
}

outlet
{
type fixedValue;
value uniform 0;

}


lowerWall
{
type slip;

}

rotor_OpenSCAD_Model
{
type zeroGradient;


}

cylinder_search_region0
{
type cyclicAMI;
value nonuniform 0;

}

upperWall
{
type slip;


}

frontAndBack
{
type slip;
}

and for the U file :

inlet
{
type fixedValue;
value uniform (0.0 0 0); // Hoover flight
}


outlet
{
type zeroGradient;
}

lowerWall
{
type slip;
}

rotor_OpenSCAD_Model
{
type rotatingWallVelocity;
origin (0.0 0 0);
axis (0 1 0);
omega constant 330; //rad per sec = 10 RPM
}

cylinder_search_region0
{
type cyclicAMI;
value nonuniform 0;
}

upperWall
{
type slip;


}

frontAndBack
{
type slip;
}




}

Whit these results, I have the correct velocity on the blades but the pressure is very very low. I think I have done a mistake but I don't know where. Do you have any idea?

Thanks you very much,

Best regards,

Martin
Hennet_m is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
area does not match neighbour by ... % -- possible face ordering problem St.Pacholak OpenFOAM 10 February 7, 2024 21:50
[snappyHexMesh] How to define to right point for locationInMesh Mirage12 OpenFOAM Meshing & Mesh Conversion 7 March 13, 2016 14:07
simpleFoam parallel AndrewMortimer OpenFOAM Running, Solving & CFD 12 August 7, 2015 18:45
gmsh2ToFoam sarajags_89 OpenFOAM 0 November 24, 2009 22:50
MRF problem mateus FLUENT 1 May 3, 2007 07:12


All times are GMT -4. The time now is 19:08.