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

Drag Prediction for 2D airfoil

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 15, 2021, 23:45
Post Drag Prediction for 2D airfoil
  #1
New Member
 
Join Date: Apr 2021
Posts: 3
Rep Power: 5
5251 is on a distinguished road
Hi all,
I am attempting to predict the value of the drag coefficient of a NACA4412 airfoil at a Reynolds number of 3x10^6. I built a case based upon the wingMotion tutorial and I am using pimpleFoam with a variable timestep and the SpalartAllmaras turbulence model to compute results. I have 10 layers on the surface of the wing, with an average y+ of 5.9. Whilst I realise this is not as accurate as it could get, my results are still in magnitude of 100% error when compared to Abbot and Von Doenhoff's Theory of Wing Sections. I suspect this may be due to my boundary conditions, though I am unsure as I am quite new to OpenFOAM. I have attached my U, p, nut and Nutilda files. EDIT: Front and Back patches are defined as empty and the topAndBottom patch is defined as slip.

U:
Code:
 
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       volVectorField;
    location    "0";
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#include        "include/initialConditions"

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform $flowVelocity;

boundaryField
{
    #include "include/fixedInlet"

    outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           $internalField;
    }

    wing
    {
        type            movingWallVelocity;
        value           uniform (0 0 0);
    }

    #include "include/frontBackTopBottomPatches"
}
P:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#include        "include/initialConditions"

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform $pressure;

boundaryField
{
    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            fixedValue;
        value           $internalField;
    }

    wing
    {
        type            zeroGradient;
    }

    #include "include/frontBackTopBottomPatches"
}
nut:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8
     \\/     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
{
    wing
    {
        type            nutkWallFunction;
        value           uniform 1e-10;
    }

    "(front|back|topAndBottom|inlet|outlet)"
    {
        type            calculated;
        value           uniform 0;
    }
}
nuTilda:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      nuTilda;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 75.5e-06;

boundaryField
{
    inlet
    {
        type            fixedValue;
        value 		 uniform 75.5e-06;
    }

    outlet
    {
        type            fixedValue;
        value		 uniform 75.5e-06;
    }

    wing
    {
        type            fixedValue;
        value           uniform 0;
    }

    frontAndBack
    {
        type            empty;
    }
    
    topAndBottom
    {
    	type		fixedValue;
    	value		uniform 0;	
    }
}
Any help or insights are greatly appreciated! I am not attempting to get exact values of drag, within 30% is sufficient.
5251 is offline   Reply With Quote

Old   April 16, 2021, 03:55
Default
  #2
Senior Member
 
Join Date: Mar 2014
Posts: 112
Rep Power: 12
mzzmrt is on a distinguished road
First of all, the wall function you used is not correct for SA model, use nutUSpaldingWallFunction instead of nutkWallFunction and see this thread if more details required:

NACA0012 k-OmegaSST simulation
mzzmrt is offline   Reply With Quote

Old   April 19, 2021, 00:29
Default
  #3
New Member
 
Join Date: Apr 2021
Posts: 3
Rep Power: 5
5251 is on a distinguished road
Hi mzzmrt,
Thank you very much for your suggestions, that thread was very helpful. Now utilising a USpaldingWallFunction for nut, my drag measurements have improved, though not as far as I would have thought. I am measuring a Cd of ~0.012, when it should be closer to 0.007. I realise that RANS has a tendency to overpredict drag, however I was under the impression this overprediction was in the range of 20-30%, not almost 80%.

Are there other factors that may be contributing to this discrepancy? I am new to OpenFoam (and CDF in general), so apologies if my questions are bit silly.
5251 is offline   Reply With Quote

Old   April 19, 2021, 11:42
Default
  #4
Senior Member
 
Join Date: Mar 2014
Posts: 112
Rep Power: 12
mzzmrt is on a distinguished road
Mesh quality and resolution may affect the results.
fvSchemes options may also be considered.
A mesh with average yPlus ~1 instead of 5.9 will be better.
For internalField following values;
nut = nu and nuTilda= 5*nu will be better choice, I guess...
mzzmrt 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
Negative drag forces of fanwing airfoil vkid185 OpenFOAM Post-Processing 0 March 26, 2017 07:16
High drag for airfoil compared to XFOIL and wind tunnel data Ry10 SU2 15 October 30, 2016 17:27
Airfoil lift and drag using k-kl-omega turbulence model hylleman OpenFOAM Running, Solving & CFD 6 June 17, 2016 15:10
negative airfoil drag?? Robin FLUENT 4 January 7, 2010 16:29
Airfoil Analysis (drag coefficiet) Alex FLUENT 3 December 24, 2007 16:14


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