|
[Sponsors] |
July 27, 2021, 10:14 |
MRF SimpleFoam + Propellers
|
#1 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hello All,
I hope you guys are doing great. I am trying to simulate a propeller using MRF (Multiple Reference Frame). I tried with SRSFSimpleFoam as well, but I did not manage to acheive convergence (post). The propeller under consideration is a UAV propeller. I have created a mesh in Ansys and converted the mesh into OpenFoam format. The geometry is attached in this post. The propeller blade is situated in a cylindrical domain with a inlet, outlet and shroud. The BCs are also specified in the geomtery. Fist of all can you please check if the BCs are correct. A rotating frame is given by rot_frame cellZone as shown in geometry file. I am using the spalart allmaras model for the sake of simplicity. I run the simulation for 1000 time steps, and it runs without diverging. I am monitoring the forces on the blade as well. When I check the values of the force, the force in z direction (the rotational axis) is very small (around ~0.003N), where as force sin x and y are negligible. And when I check the velocity and pressure in the domain at 1000 timestep, I see zero velocity and pressure everywhere (see attached figures) in the domain except the blade. And the pressure variation is almost negligible on the blade. It seems there is no transfer of fields between two rotaional and stationary domains. So I need some kind of interface between rotating and stationary volume. What could be the possible reason for this. I don't think I need AMI for this case, correct me if I am wrong. Below I attach the relevant files for the case. I seek help from the community. I hope someone can guide me. Thanks in advance. Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { blade { type noSlip; } shroud { type pressureInletOutletVelocity; value $internalField; } inlet { type fixedValue; value uniform (0 0 0); } outlet { type pressureInletOutletVelocity; value $internalField; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { blade { type zeroGradient; } shroud { type fixedValue; value uniform 0; } inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { blade { type fixedValue; value uniform 0; } shroud { type fixedValue; value uniform 0.14; } inlet { type fixedValue; value uniform 0.14; } outlet { type fixedValue; value uniform 0.14; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object MRFProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // MRF1 { cellZone rot_frame; active yes; // Fixed patches (by default they 'move' with the MRF zone) nonRotatingPatches (); origin (0 0 0); axis (0 0 -1); omega 50; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class polyBoundaryMesh; location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 4 ( inlet { type patch; nFaces 9354; startFace 33447256; } shroud { type patch; nFaces 71923; startFace 33456610; } outlet { type patch; nFaces 9433; startFace 33528533; } blade { type wall; inGroups 1(wall); nFaces 118780; startFace 33537966; } ) // ************************************************************************* // |
|
July 29, 2021, 02:22 |
|
#2 |
New Member
jaym
Join Date: Aug 2019
Posts: 9
Rep Power: 7 |
From your U dictionary there seem to be no flow velocity given in the domain.
|
|
July 29, 2021, 04:49 |
|
#3 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hello,
Thank you so much for replying. Finally someone replied. First of all, I think I forgot to mention that I use force functionObject in controlDict to calculate the forces. Indeed, the inlet velocity was zero as I was trying to simulate the hovering case. My first question, do we need to have some separate BC for simulating hover case? And next, I also did a simulation with the inlet velocity of 10 m/s and a rotational speed of 100 rps (6000 rpm). I am getting a thrust (force in z) of 0.37N. The value seems to be reasonable but the direction is opposite, with the current configuration I expect the thrust force to be in negative. And to confirm that, I plotted the pressure contour as well (shown in attached picture). The flow is coming from up to down, and there is more pressure on the top of the blade as compared to bottom, which explains the direction of thrust as well. I am totally confused why is this happening. I tried to reverse the direction of rotation as well, but still the same results in terms of direction of thrust and pressure contour. Let me know if you know what could be a possible reason for this behaviour. Thank you. |
|
August 3, 2021, 12:35 |
|
#4 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hello,
Update: I think I am able to get some meaningful results with the above settings. There was a very silly mistake I was making, while specifying the MRFProperties, the rotational speed is to be given in rad/s and I was assuming it to be rps. The blade which I was simulating is not designed for very low RPMs. So, that worked for me. Might be useful for someone |
|
August 16, 2021, 15:17 |
|
#5 |
Member
Gabriel Felix
Join Date: May 2021
Location: Brazil
Posts: 35
Rep Power: 6 |
Yeah, rotational velocity in MRFProperties is definitely rad/s. All units are in SI. You should also include in the nonRotatingPatches line the patches that are in the MRF but are no moving with it, like the AMI1 and AMI2 patches. These are the limits of the rotating region and they dont move with it.
Try setting up in MRFProperties files: Code:
nonRotatingPatches (AMI1 AMI2); My pressures were in the wrong side of the propellers as in your figures. The nonRotatingPatches modification solved the problem as well as made my forces and moments be closer to my analytic BEM results. |
|
August 17, 2021, 04:50 |
|
#6 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hi Gabriel,
Thanks for your reply. I will try the non rotating patches as well although now it is giving realistic thrust and torque values. Another thing: When I use spalart allamaras it converges, but when I try to use komegasst model, it really needs high value of omega (high dissipation) for convergence, otherwise I get very high values of forces and time step continuity error increases. Does anyone know the reason for this? Thanks in advance. Regards, Chakshu |
|
August 17, 2021, 06:51 |
|
#7 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
Hi,
Same problem for me regarding dissipation of omega… |
|
August 17, 2021, 07:14 |
|
#8 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hey,
Are you also using MRF with SimpleFoam? And what is your application? |
|
August 17, 2021, 08:35 |
|
#9 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
I have the diffusion issue with simpleFoam and rhoSimpleFoam. Yes I am using MRF.
|
|
February 24, 2022, 07:33 |
|
#10 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hi everyone,
Following the above threads. I have been trying to perform a simulation for propeller using MRF SimpleFoam in OpenFoam. The propeller I am using as a test case is APC 10x4.7SF. I am simulating a hover case.
Thanks in advance. Regards, Chakshu |
|
February 24, 2022, 08:05 |
|
#11 |
New Member
Federico Nahuel Ramírez
Join Date: Dec 2020
Location: Spain
Posts: 16
Rep Power: 5 |
Hi Chakshu,
In my experience k omega SST is not the best turbulence model to simulate propellers. Comparing kEpsilon and kOmega SST I have found that kEpsilon matched the experimental results quite well while kOmega SST underpredicts them. On the other hand, since you mention the mesh, it is always advisable to perform a mesh independence study to ensure that it is not affecting the solution. |
|
February 24, 2022, 11:01 |
|
#12 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hi Federico,
Thanks for your reply. Okay, I will try k-epsilon model. The reynolds number of operation would be below 60-70k. Do you think k-epsilon could be better suited in this range? |
|
February 28, 2022, 04:40 |
|
#13 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hi,
Update: I finished running simlulation with kepsilon, I got almost same value for Thrust (as compared to kOmega), where as torque value is close to the experiments, but overall, efficiency/FOM is totally off (as compared to experiments and kOmega).
Thanks in advance. Regards. Last edited by chakshu; February 28, 2022 at 05:51. |
|
March 1, 2022, 09:40 |
|
#14 |
New Member
Chakshu DEORA
Join Date: Jun 2021
Posts: 21
Rep Power: 5 |
Hi everyone,
I think I found why my forces were under-estimated. I was using force library to calculate forces on the propeller. I had the following information in my force file: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ forces { type forces; libs (forces); writeControl timeStep; timeInterval 1; log yes; patches ("propeller"); rho rhoInf; // Indicates incompressible log true; rhoInf 1; // Redundant for incompressible CofR (0 0 0); // Rotation around centre line of propeller pitchAxis (0 1 0); } // ************************************************************************* // |
|
March 1, 2022, 11:19 |
|
#15 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
Hi,
Could you share your fvSolution and your fvSchemes ? |
|
March 3, 2022, 04:46 |
|
#16 |
New Member
Federico Nahuel Ramírez
Join Date: Dec 2020
Location: Spain
Posts: 16
Rep Power: 5 |
Hi Chaksu,
Unfortunately I cannot share the propeller geometry. As for the configuration, it's a transient simulation using sliding mesh. The schemes I use are the following: Code:
ddtSchemes { default Euler; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) cellLimited Gauss linear 1; } divSchemes { default none; div(phi,U) Gauss linearUpwind grad(U); div(phi,k) Gauss upwind; div(phi,epsilon) Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear limited corrected 0.33; } interpolationSchemes { default linear; } snGradSchemes { default limited corrected 0.33; } I see that you seem to have already found the source of the error. A difference of ~ 5% seems acceptable to me, although it depends on the level of accuracy you require. In my case the error, depending on the rotation speed, ranges between 1 and 3% (also under-predicting), but obviously at the cost of a much higher computational cost (transient case). What I find curious is that you get almost the same results with kOmega and kEpsilon. It is possible that I am not getting the same results because of some problem with the mesh. I will try to check it. |
|
Tags |
mrf, propeller, simplefoam, uav |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
simpleFoam: Influence of MRF region dimensions on simulation results | Krao | OpenFOAM Running, Solving & CFD | 4 | March 29, 2022 22:33 |
simpleFoam + MRF properties: FATAL ERROR: not implemented | student666 | OpenFOAM Running, Solving & CFD | 3 | April 11, 2021 04:11 |
MRF case - simpleFoam quits after building mesh for time = 0 | .bastian | OpenFOAM Running, Solving & CFD | 8 | February 7, 2020 17:42 |
SRFSimpleFoam vs SimpleFoam (MRF) | oscar_urri | OpenFOAM Running, Solving & CFD | 9 | November 13, 2018 18:18 |
Simulation of Radial Fan with simpleFoam MRF | nash | OpenFOAM Running, Solving & CFD | 2 | November 5, 2015 11:12 |