|
[Sponsors] |
airfoil pressure coefficient in pisoFoam kOmegaSST |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 20, 2016, 05:20 |
airfoil pressure coefficient in pisoFoam kOmegaSST
|
#1 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Good morning,
i created a 2D NACA airfoil (angle of attack = 14°) with blockMesh and already checked it with checkMesh. Everything seems to be ok. The calculation (kOmegaSST) is runnning without any mistakes and the results look right at the first sight but the pressure at the suction side, especially at the tip is to low. Physically, the minimum pressure coefficient should be around -6, but i get a minimum of around -1 with a fine grid (4800 points on the airfoil). The more i refine the grid, the pressure value scales down in the wrong direction. I changed the grid many times but I'm not sure if it's a mesh mistake or a definition mistake in one of the system-/, constant/- or 0/-files. Does anyone have an idea or had the same problems? Thanks in advance Claus |
|
May 20, 2016, 08:17 |
|
#2 |
New Member
Join Date: Oct 2014
Posts: 26
Rep Power: 12 |
Hi jck,
I think people will need a little more information. What are your BCs on the airfoil? What is your y+? etc... regards, teuk |
|
May 20, 2016, 09:08 |
|
#3 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey, that's true. I'm working with wallfunctions.
Code:
k: boundaryField { wing { type kqRWallFunction; value uniform 0.0096; } } Code:
nut: boundaryField { wing { type nutkWallFunction; Cmu 0.09; kappa 0.41; E 9.8; value uniform 0; } } Code:
omega: boundaryField { wing { type omegaWallFunction; Cmu 0.09; kappa 0.41; E 9.8; beta1 0.075; value uniform 9.8; } } Code:
p: boundaryField { wing { type zeroGradient; } } Code:
U: boundaryField { wing { type fixedValue; value uniform (0 0 0); } } Code:
fvSchemes: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwindV grad(U); div(phi,k) bounded Gauss upwind; div(phi,omega) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } Code:
fvSolution: FoamFile { version 2.0; format ascii; class dictionary; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-7; relTol 0.01; minIter 5; maxIter 100; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration on; agglomerator faceAreaPair; nCellsInCoarsestLevel 0; mergeLevels 1; } pFinal { $p; tolerance 1e-7; relTol 0.01; } U { solver smoothSolver; smoother GaussSeidel; tolerance 1e-8; relTol 0.01; nSweeps 1; } k { solver smoothSolver; smoother GaussSeidel; tolerance 1e-8; relTol 0.01; nSweeps 1; } omega { solver smoothSolver; smoother GaussSeidel; tolerance 1e-8; relTol 0.01; nSweeps 1; } } PISO { nCorrectors 2; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; } Code:
RASProperties: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object RASProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // RASModel kOmegaSST; turbulence on; printCoeffs on; |
|
May 20, 2016, 12:19 |
|
#4 | |
New Member
Join Date: Oct 2014
Posts: 26
Rep Power: 12 |
Hi Claus,
there is a bunch of possible reasons for this. Quote:
There is a unlikely possibilty to have a to fine mesh. -> What is your cellsize close to the airfoil (and y+)? Is this a low-Re simulation? Is your simulation in stall condition? -> Do you expect a seperation bubble at this point? By "tip" you mean the Leading Edge? Since your results are getting better with a coarser mesh probably this is the solution. Unfortunately its easier to refine a mesh then coarsen it :-P I'm not sure about GAMG for p. Could "blur" your field a little... regards, teuk |
||
May 20, 2016, 15:59 |
|
#5 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey teuk,
-chordlength= 1m -Re=1.85e+6 -yes the airfoil should be in stall condition -with "tip" i mean "leading edge" Is there a function for the cell size in y-direction or for the y+ value? I will try to calculate it with a coarser mesh on monday and tell you about the results because i only have access to OF during the week. Regards Claus |
|
May 24, 2016, 06:00 |
|
#6 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey,
i took the function yPlusRAS to calculate the y+ value on the wing. I get values from 0.7 in low-speed area to ~30 in higher speed area (in the finer mesh calculation). Regards Claus |
|
May 24, 2016, 10:10 |
|
#7 |
New Member
Join Date: Jun 2014
Posts: 9
Rep Power: 12 |
Hi Jck
If it is in stall condition, you probably should consider a 3D model. You can use periodic boundary conditions in the span-wise direction. Two-dimensional models are not very good at computing forces in massive flow separation. Sometimes 2D unsteady SST or SA return reasonably good force values for flow past a cylinder at a few Reynolds numbers only. But looking at a wide range of Re = 3900 to 10^6, forces computed by 2D RANS are usually off on this geometry. By the way, with SST you can apply a very small wall distance so that y+~1. |
|
May 24, 2016, 10:38 |
|
#8 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey Kire,
the NASA made a similar calculation with a 2D grid and got good results. How can i apply a very small wall distance without waiting 6 days for the results of a very fine mesh? I read something about the function refineWallLayer. Could it work with it? |
|
May 25, 2016, 01:25 |
|
#9 |
New Member
Join Date: Jun 2014
Posts: 9
Rep Power: 12 |
Hi Jck
1) Can you link me to the relevant NASA page? 2) Since you are running a transient solver, consider faster linear system solver settings: Code:
solvers { p { solver GAMG; tolerance 1e-6; relTol 1e-3; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration on; agglomerator faceAreaPair; nCellsInCoarsestLevel 10; mergeLevels 1; } pFinal { solver PCG; preconditioner { preconditioner GAMG; tolerance 1e-06; relTol 0; smoother DICGaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } tolerance 1e-06; relTol 0; } U { solver smoothSolver; smoother GaussSeidel; tolerance 1e-5; relTol 0; nSweeps 1; } k { solver smoothSolver; smoother GaussSeidel; tolerance 1e-6; relTol 0; nSweeps 1; } omega { solver smoothSolver; smoother GaussSeidel; tolerance 1e-6; relTol 0; nSweeps 1; } } PISO { nCorrectors 2; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; } 3) I have never used the function refineWallLayer. What mesh generator do you use? It can be difficult to create low-Re cells in snappyHex. |
|
May 25, 2016, 03:56 |
|
#10 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey,
1) http://turbmodels.larc.nasa.gov/naca4412sep_val.html Here is link to the refineWallLayer function: https://openfoamwiki.net/index.php/RefineWallLayer I use blockMesh to generate my mesh in this high Re calculation |
|
May 25, 2016, 07:48 |
|
#11 |
New Member
Join Date: Jun 2014
Posts: 9
Rep Power: 12 |
Hi Jck
1) I am certain you can control grid clustering easily in blockMesh. You can alter simpleGrading to control the wall distance. It is not necessary to use refineWallLayer. 2) It seems to me that the NASA validation was done in a compressible steady state solver at Mach = 0.09, where compressible effects are believed to not have much influence on the results. You can use incompressible/compressible SIMPLEC in this case. |
|
May 27, 2016, 05:18 |
|
#12 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hi Kire,
1) yeah it's possible to control the wall distance with simpleGrading. I tried both ways. Sometimes the aspect ratio or the skewness were increasing. 2) Do you thing that the compressible solver could solve the problem with the pressure coefficient? I would be surprised because of the small Mach number. 3) Is it right, that there are two ways to deal with y+: 3.1) no wallfunctions -> 1-10 cells in viscous sublayer, y+ < 1 3.2) wallfunctions -> coarse grid, 30 < y+ < 300 (log law layer) |
|
May 27, 2016, 10:37 |
|
#13 |
New Member
Join Date: Jun 2014
Posts: 9
Rep Power: 12 |
Hi Jck
1) I don't think aspect ratio is your biggest concern. A mesh can and will solve even when aspect ratio in the first layer is larger than 1000, the value at which OpenFOAM starts showing warnings. If it is a steady state solver, you can use leastSquares or its extended versions when having large skewness to try and preserve result accuracy. 2) I believe a pressure-based compressible solver will give you reasonably good results at such Mach number. How about trying it out? 3) a. No wallfunction for nut when y+~1. Simply use nut = 0 or nutLowReWallFunction ( nut = 0 ). Ten layers might be too many, try 5. Btw, I use 20 or more prism layers to cover the entire boundary layer. b. Yes, wall function as in wall function for nut, but still need 5~8 or more prism layers to cover the entire boundary layer. |
|
May 27, 2016, 11:18 |
|
#14 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Hey Kire,
1)I will tried it with the compressible solver and without wallfunctions. 2)Do i use the right definitions for k and omega: k=(3/2)*(U*Tu), Tu=turbulence intensityWith these definitions i get: k=0.00081656 and omega=544,3729 |
|
May 31, 2016, 03:41 |
|
#15 |
New Member
Join Date: May 2016
Posts: 12
Rep Power: 10 |
Good morning,
there is no big difference between the compressible and the incompressible calculation. The pressure coefficient is wrong in both cases. 1) What's about the boundary conditions? I don't believe that it's a mesh problem. 2) What is the best way to calculate y+? I read that yPlusRAS just calculates y* and not y+.Regards |
|
Tags |
airfoil, blockmesh, komegasst, pisofoam, pressurecoeff |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Airfoil with simpleFoam and kOmegaSST: high drag values? | Tsiolkovsky | OpenFOAM Running, Solving & CFD | 6 | November 21, 2018 06:56 |
High drag for airfoil compared to XFOIL and wind tunnel data | Ry10 | SU2 | 15 | October 30, 2016 18:27 |
Question about heat transfer coefficient setting for CFX | Anna Tian | CFX | 1 | June 16, 2013 07:28 |
Constant velocity of the material | Sas | CFX | 15 | July 13, 2010 09:56 |
Hydrostatic pressure in 2-phase flow modeling (long) | DS & HB | Main CFD Forum | 0 | January 8, 2000 16:00 |