|
[Sponsors] |
November 29, 2013, 05:12 |
MRF foam problem
|
#1 |
New Member
Join Date: Oct 2013
Posts: 12
Rep Power: 12 |
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. |
|
December 1, 2013, 23:10 |
|
#2 |
Senior Member
Join Date: Aug 2013
Posts: 407
Rep Power: 15 |
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 |
|
December 2, 2013, 09:34 |
|
#3 |
New Member
Join Date: Oct 2013
Posts: 12
Rep Power: 12 |
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 |
|
December 2, 2013, 09:38 |
|
#4 |
New Member
Join Date: Oct 2013
Posts: 12
Rep Power: 12 |
Sorry, Please find attached the case =)
Thanks Martin |
|
December 2, 2013, 21:28 |
|
#5 |
Senior Member
Join Date: Aug 2013
Posts: 407
Rep Power: 15 |
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 |
|
December 3, 2013, 09:54 |
|
#6 |
New Member
Join Date: Oct 2013
Posts: 12
Rep Power: 12 |
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 |
|
December 3, 2013, 21:48 |
|
#7 |
Senior Member
Join Date: Aug 2013
Posts: 407
Rep Power: 15 |
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 |
|
December 4, 2013, 12:15 |
|
#8 |
New Member
Join Date: Oct 2013
Posts: 12
Rep Power: 12 |
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 |
|
|
|
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 |