|
[Sponsors] |
April 15, 2021, 23:45 |
Drag Prediction for 2D airfoil
|
#1 |
New Member
Join Date: Apr 2021
Posts: 3
Rep Power: 5 |
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" } 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" } 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; } } 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; } } |
|
April 16, 2021, 03:55 |
|
#2 |
Senior Member
Join Date: Mar 2014
Posts: 112
Rep Power: 12 |
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 |
|
April 19, 2021, 00:29 |
|
#3 |
New Member
Join Date: Apr 2021
Posts: 3
Rep Power: 5 |
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. |
|
April 19, 2021, 11:42 |
|
#4 |
Senior Member
Join Date: Mar 2014
Posts: 112
Rep Power: 12 |
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... |
|
|
|
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 |