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

MRF SimpleFoam + Propellers

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 27, 2021, 10:14
Default MRF SimpleFoam + Propellers
  #1
New Member
 
Chakshu DEORA
Join Date: Jun 2021
Posts: 14
Rep Power: 2
chakshu is on a distinguished road
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;
    }
)

// ************************************************************************* //
Let me know if I am missing some important information to be included. Many thanks.
Attached Images
File Type: jpg geometry_details.jpg (27.4 KB, 26 views)
File Type: png P.png (113.2 KB, 24 views)
File Type: png U.png (55.6 KB, 22 views)
chakshu is offline   Reply With Quote

Old   July 29, 2021, 02:22
Default
  #2
New Member
 
jaym
Join Date: Aug 2019
Posts: 3
Rep Power: 4
Ngaru is on a distinguished road
From your U dictionary there seem to be no flow velocity given in the domain.
Ngaru is offline   Reply With Quote

Old   July 29, 2021, 04:49
Default
  #3
New Member
 
Chakshu DEORA
Join Date: Jun 2021
Posts: 14
Rep Power: 2
chakshu is on a distinguished road
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.
Attached Images
File Type: png pressure_contour_positive_rot_axis.png (87.7 KB, 16 views)
chakshu is offline   Reply With Quote

Old   August 3, 2021, 12:35
Default
  #4
New Member
 
Chakshu DEORA
Join Date: Jun 2021
Posts: 14
Rep Power: 2
chakshu is on a distinguished road
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
chakshu is offline   Reply With Quote

Old   August 16, 2021, 15:17
Default
  #5
New Member
 
Gabriel Felix
Join Date: May 2021
Location: Brazil
Posts: 27
Rep Power: 3
gabrielfelix is on a distinguished road
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);
Check MRFSimpleFoam + CyclicAMI = Flux not conserved at AMI Interface

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.
gabrielfelix is offline   Reply With Quote

Old   August 17, 2021, 04:50
Default
  #6
New Member
 
Chakshu DEORA
Join Date: Jun 2021
Posts: 14
Rep Power: 2
chakshu is on a distinguished road
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
chakshu is offline   Reply With Quote

Old   August 17, 2021, 06:51
Default
  #7
Member
 
Join Date: Feb 2020
Posts: 44
Rep Power: 3
Fouch is on a distinguished road
Hi,
Same problem for me regarding dissipation of omega…
Fouch is offline   Reply With Quote

Old   August 17, 2021, 07:14
Default
  #8
New Member
 
Chakshu DEORA
Join Date: Jun 2021
Posts: 14
Rep Power: 2
chakshu is on a distinguished road
Hey,


Are you also using MRF with SimpleFoam? And what is your application?
chakshu is offline   Reply With Quote

Old   August 17, 2021, 08:35
Default
  #9
Member
 
Join Date: Feb 2020
Posts: 44
Rep Power: 3
Fouch is on a distinguished road
I have the diffusion issue with simpleFoam and rhoSimpleFoam. Yes I am using MRF.
Fouch is offline   Reply With Quote

Reply

Tags
mrf, propeller, simplefoam, uav

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
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
simpleFoam: Influence of MRF region dimensions on simulation results Krao OpenFOAM Running, Solving & CFD 3 February 5, 2020 03:48
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


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