CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   NACA0012 Validation Accuracy Improvement (https://www.cfd-online.com/Forums/openfoam-solving/146204-naca0012-validation-accuracy-improvement.html)

Alhasan December 20, 2014 22:37

NACA0012 Validation Accuracy Improvement
 
4 Attachment(s)
Hey everyone,

- I have been trying to validate NACA0012 at 0 angle of attack at Re=400,000 before going to other complicated cases.
- My geometry: 5c before above and below the airfoil and 20c behind the airfoil quite standard.
- Top, front and bottom of the airfoil are treated as one patch and it is the joint together as the inlet and outlet behind the airfoil is outlet.

BC's U=30m/s k=0.0216, w= 9.4512, e= 0.01297, length scale l= 0.022 and turbulence intensity 0.4%.

I have also tried for inlet patch TOP
Code:

TOP
    {
        type            fixedValue;
        value          uniform 0.0216;
    }

Code:

TOP
    {
        type            turbulentIntensityKineticEnergyInlet;
        intensity      0.004;
        U              U;
        phi            phi;
        value          uniform 0.0129;
    }

similarly for Omega
Code:

  TOP
    {
        type            turbulentMixingLengthFrequencyInlet;
        mixingLength    0.022;
        value          uniform 9.4512;
    }

I started with the Mesh dependency test and I have meshed using ICEM and here is my Check Mesh for the current case I am discussing
Code:

Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:          712214
    internal points:  0
    faces:            1418599
    internal faces:  706385
    cells:            354164
    boundary patches: 4
    point zones:      0
    face zones:      0
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    354164
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch              Faces    Points  Surface topology                 
    CURV1              1197    2394    ok (non-closed singly connected) 
    TOP                2393    4788    ok (non-closed singly connected) 
    OUTLET              296      594      ok (non-closed singly connected) 
    frontAndBackPlanes  708328  712214  ok (non-closed singly connected) 

Checking geometry...
    Overall domain bounding box (-0.99999 -1 -0.0538516) (4 1 0.0538516)
    Mesh (non-empty, non-wedge) directions (1 1 0)
    Mesh (non-empty) directions (1 1 0)
    All edges aligned with or perpendicular to non-empty directions.
    Boundary openness (-2.54542e-18 -6.1943e-17 -5.4949e-20) OK.
    Max cell openness = 1.7313e-15 OK.
    Max aspect ratio = 87.6093 OK.
    Minumum face area = 5.10905e-10. Maximum face area = 0.00131659.  Face area magnitudes OK.
    Min volume = 5.50261e-11. Max volume = 1.33492e-05.  Total volume = 1.03045.  Cell volumes OK.
    Mesh non-orthogonality Max: 27.2457 average: 9.67064
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.661473 OK.
    Coupled point location match (average 0) OK.

Mesh OK.

End

My y+ around the airfoil is 0.5-1 and I have not used wall functions.

Here is my Fv Schemes
Code:

ddtSchemes
{
    default steadyState;
}

gradSchemes
{
    default        cellMDLimited Gauss linear 0.5;
    grad(p)        cellMDLimited Gauss linear 0.5;
    grad(U)        cellMDLimited Gauss linear 0.5;
}

divSchemes
{
    default        none;
    div(phi,U)      Gauss linearUpwind grad(U);
    div(phi,k)      Gauss upwind;
    div(phi,omega)  Gauss upwind;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default          Gauss linear limited 1.0;
}

interpolationSchemes
{
    default        linear;
}

snGradSchemes
{
    default          limited 1.0;
}

fluxRequired
{
    default        no;
    p;
}

Here is my Fv Solutions
Code:

solvers
{
    p
    {
        solver          GAMG;
        tolerance        1e-7;
        relTol          0.001;
        //minIter          5;
        //maxIter          100;
        smoother        GaussSeidel;
        nPreSweeps      1;
        nPostSweeps      3;
        nFinestSweeps    3;
        scaleCorrection true;
        directSolveCoarsest false;
        cacheAgglomeration on;
        nCellsInCoarsestLevel 50;
        agglomerator    faceAreaPair;
        mergeLevels      1;
    }

    U
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        tolerance        1e-16;
        relTol          0.01;
        nSweeps          1;
        minIter          1;
    }

    k
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        tolerance        1e-16;
        relTol          0.0;
        nSweeps          1;
        minIter          1;
    }

    omega
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        tolerance        1e-16;
        relTol          0.0;
        nSweeps          1;
        minIter          5;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
   
    pRefCell        0;
    pRefValue      0;

    residualControl
    {
        p              1e-9;
        U              1e-9;
        "(k|omega)"    1e-9;
    }
}

potentialFlow
{
    nNonOrthogonalCorrectors 10;
}

relaxationFactors
{
    fields
    {
        p              0.3;
    }
    equations
    {
        "(U|k|omega)"  0.7;
        "(U|k|omega)Final" 0.7;
    }
}

cache
{
    grad(U);
}

Initially I started my simulations with potential flow and then with turbulence off for about 1000 iterations and then switched on the turbulence and got quick convergence about 8000-10000 iterations for case with about 200,000 cells. I was looking for Cl, Cd, Cm convergence.

Basically all was going well until I got the results,
When I got the results I got good agreement with Cp distribution around the airfoil but not so great with boundary layer growth and wake which I have been trying to achieve for couple of days playing the Fv schemes and Fv solutions but the results don't even nudge for any change I make in the fv sch/sol.

The Cd also is quite high 0.4 it is supposed to be 0.008 and for a 2D case what is the 'Aref' you use in the forceCoeffs dict ?

Can you please advice on what mistake i could be possibly doing that is causing this variation in the boundary layer and wake validation. I have a very nice boundary layer mesh around the airfoil, no sudden changes in cell sizes measured the value of first cell size for y+1 using online calculator and used it.

Here are my results for KWSST, Saplart and KE. (the image name mentions SST,Splrt & KE)

Alhasan January 8, 2015 13:55

2 Attachment(s)
Any one any suggestion ?
I have changed the y+ value to 30 and used wall functions there has been some improvement in the results but not as expected See the results posted below from Kw-SST model

bullmut January 28, 2015 06:50

same issue
 
Hi alhasan

I am doing almost the exact same thing as you. My fv solutions and schemes looks the same as yours.
I did not run potentalFoam first though.

Sad news is i am also getting poor results.

I have my y+ above 30 since i am using wall functions.
I have been running this simulation for over 50000 steps.
Still no convergence.


Have you found out your problem and solved it as yet??

Alhasan January 28, 2015 08:27

Quote:

Originally Posted by bullmut (Post 529345)

Sad news is i am also getting poor results.

Have you found out your problem and solved it as yet??

Hello Gareth,

Yes I have found the results I had to use the right Y+ to get the boundary layer accurately, However I could not manage to get results without using the wallFunctions and with Y+ = 1 which is what I am still trying to figure out any help here for me would be still appreciated.

However coming back to your problem,
- for convergence potentialFoam initialisation is very important in my opinion to give you an idea with potential foam I get convergence at around 7000 time step and without for the same case sometimes even 200,000 timestep. so I strongly advice potentialFoam initialisation.
- are you doing 2D or 3D simulation, and solver
- can you give me checkMesh results, some images close to the wall of the mesh and what software did you use to mesh ?
- you can start with a first order schemes upwind for everthing, it doesnt make much of a difference, I still got good results.
- what is the reynolds number you looking at and what are the turbulence model you have tried used and how bad is your result.

All the best,
Hasan K.J

bullmut January 29, 2015 01:40

1 Attachment(s)
Hi there

So i am using blockMesh to do my meshing. I am attaching the checkMesh output.
I am currently only do a 2D mesh, and trying to get results similar to those posted here
http://turbmodels.larc.nasa.gov/naca0012_val_sst.html
So my Re = 6e6 and wind speed of 51.45m/s

When i look at the cp around the foil i can see i have issues at the leading edge(LE).
This is also where i have trouble with my y+ value.

In blockMesh i set teh 1st cell height to be the same around the whole foil, and for the most part the y+ is greater than 30 and less than 500.. conditions for use of wall functions.

But at the LE my y+ drops to around 8... so my thinking is i need to change the cell height at this section to better accommodate my wall function.

You mentioned your y*/ was around 1, am i confused? I thought when i used wall functions i needed a 30 <y+< 500

Alhasan January 29, 2015 08:39

Quote:

Originally Posted by bullmut (Post 529458)
You mentioned your y*/ was around 1, am i confused? I thought when i used wall functions i needed a 30 <y+< 500

Hey,

Sorry for not being clear I was talking about two different cases, one case using Wall functions and average Y+ of 30 on the airfoil - which was good enough to validate both my Cp distribution and boundary layer growth. Second case without using wall function and average Y+ of 1 where I can validate only Cp distribution and not the boundary layer growth this I am still trying to figure out how to achieve.

- there is more discussion about my particular case and how I got to the Y+ here startig from Post 16 http://www.cfd-online.com/Forums/ope...te-y-plus.html

- Also spend some time on this utility here which helps define the Y+ after the first simulation. http://www.cfd-online.com/Forums/ope...lus-field.html

It might be little long thread but it is worth the read.

Now coming back to your case

you need to choose a particular Y+ that is anything between 30 and 300 and fix it as a average Y+ around your airfoil when meshing. In my experience this has given the best result. you should start with average Y+ of 30 and carry on from there, your problem should be sorted if this is sorted in my opinion.

I take you have used KW-SST by any chance did you try K-E, K-W or spallart and see how better or bad the results were ?

Q. However recently I have been having problems with even Y+ 30 when I start with different angle of attacks the stagnation point is kind of smuged I dunno what is happening

but with zero angle of attacks there was no such problems.

All the best,
Hasan K.J

bullmut January 29, 2015 08:49

Hi Hasan

So i managed to get a good result with a 10 AoA for naca0012.
I have an average y+ around the foil of 200. Again the leading edge value drops to about 8.
The way i finally got a good result was a reworking of my mesh. BlockMesh is a pain to say the least. I am running a 15 AoA as a final check on my mesh. I have found the stagnation point is an issue. Os i am adjusting the y+ in the area.

That said the Cl and Cd match the validation data earlier mentioned (for 10 AoA). I killed the simulation when the CL and Cd values showed stability for a decent amount of iterations. My residuals at the time were not too good though. P was sitting at 1e-4 and the Ux and Uy at 1e-5. I have seen people set their residuals down to 1e-9 for cut off.. am i being to premature in stopping my sim?
Last question, what are your outlet conditions? I am using freeStream and it seems alright...

If you would like i can send you my case and see if you notice anything odd about my system of constant folder.
I would be willing to do the same for you too.

Thanks again for your help earlier

Alhasan January 29, 2015 09:27

Hello Gareth,

What is your Cl and Cd from the simulation ?, because I have found the value changes with and without wall function.

Can you please post a closee up image of the stagnation point !! I want to see what is happening with such high Y+ of 200 personally I have never crossed 100 Y+ and you need to try to validate the Cp atleast because when the stagnation point doesnt look good the Cp distribution is ususally off the charts :/

when you have time please have a look at the utilities and links provided in my previous post !!

- Did you use potentialFoam and did you look at your residuals and what number of iterations are they converging, I personally have 1e-12 for K,W,U and 1e-9 for P and I get the convergence about 7000 iterations for zero angle of attack and 15000 iterations for 10 above angle of attack. only when you postprocess your results like the Cp and Boundary layer on the airfoil you will actually know if the convergence is enough.

- Boundary conditions depends from case to case, It depends on case you are trying to validate. Since I do validation of experiments most of the time, I use Fixed inlet and Zerogradient outlet. sometimes even inlet-outlet at the outlet patch.

that being said Cl, Cd and Cp distribution are very easy to achieve in CFD the problem is the boundary layer growth and aifoil wake validation that takes the energy out of you.

Blockmesh I have never managed to mesh an airfoil in blockmesh, I use Salome free opensource software when I did not have access to ICEM, and now using ICEM to mesh airfoil which lets you contol the mesh verywell.

all the best
Hasan K.J

Alhasan February 1, 2015 09:39

Continuation
 
Hello Everyone,

The answer for the question posted by me in this thread is assigning the right Y+ value for the case,

the answers were acquired from these two threads by the variant of my question from Post 16 here http://www.cfd-online.com/Forums/ope...tml#post526625

and post 52 http://www.cfd-online.com/Forums/ope...tml#post527314

Hope this saves your time,

Thanks for all the answers,
Hasan K.J


All times are GMT -4. The time now is 10:42.