CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

Underpredicting stall on an aerofoil

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 11, 2009, 13:37
Default Underpredicting stall on an aerofoil
  #1
New Member
 
Join Date: Apr 2009
Posts: 3
Rep Power: 17
abaqus213 is on a distinguished road
Evening everyone,

I am slightly puzzled over some simulation results which I have just run and wondered if someone could shed some light on the issue.

I am running a 2D Simulation on a NACA0012 at 13 degrees using the k-epsilon with standard wall functions. At this level of incidence I would expect the aerofoil to have stalled and the pressure distribution to be flat. However, I get a pressure distribution with a sharp favourable pressure gradient near the leading edge with an adverse pressure gradient moving towards the trailing edge? Is this because I am using wall functions? If so, why does this make a difference?

Many Thanks
abaqus213 is offline   Reply With Quote

Old   April 11, 2009, 15:46
Default
  #2
Senior Member
 
N/A
Join Date: Mar 2009
Posts: 189
Rep Power: 17
harishg is on a distinguished road
I am not sure which version of k-epsilon model you are employing but most of the older versions of k-models have shown deficiencies for adverse pressure gradients. Also the use of wall functions can be problematic for flow separation. Check the literature for successful simulations with k-epsilon model for airfoil stall. You should try employing menter's k-omega model or wilcox modified k-omega model if you have an option or more recent versions of k-epsilon models.
harishg is offline   Reply With Quote

Old   April 12, 2009, 09:20
Default
  #3
New Member
 
Join Date: Apr 2009
Posts: 3
Rep Power: 17
abaqus213 is on a distinguished road
Many Thanks for your reply.

I am using the standard k-epsilon model in my simulation. I have found a number of posts which indicate the wall functions do not accurately capture flow seperation, however I cannot seem to find out why! If anyone could post why wall function do not model flow seperation and why the standard k-e model shows deficiencies for adverse pressure gradients, I would be most grateful.

Cheers
abaqus213 is offline   Reply With Quote

Old   April 12, 2009, 12:15
Default
  #4
Senior Member
 
N/A
Join Date: Mar 2009
Posts: 189
Rep Power: 17
harishg is on a distinguished road
Wall functions are a function of friction velocity which are a function of wall shear stress. Wall shear stress becomes zero when you have flow separation and hence both the wall function approach and many of the low -Re K-E model are problematic.
harishg is offline   Reply With Quote

Old   April 13, 2009, 11:50
Default
  #5
New Member
 
Tenzin Choephel
Join Date: Apr 2009
Posts: 2
Rep Power: 0
Tenzin Choephel is on a distinguished road
What is the Reynolds number that u have entered? At around Reynolds number range of 100,000-500,000, the stall angle of NACA 0012 is around 12-13. At say about 3,000,000 Reynolds number, it is about 16 degrees. You might not have expected Reynold number effect in ur results. Hope that helps.
Tenzin Choephel is offline   Reply With Quote

Old   April 21, 2009, 06:27
Default
  #6
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 250
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Hi all!

I'm doing a compare tests of turbulence models in FLUENT and OpenFOAM. I've got convergence problems with standard k-epsilon in OpenFOAM for testing geometries.
Mesh is 3D with following parameters:

Quote:
Number of cells of each type:
hexahedra: 29855
prisms: 0
wedges: 0
pyramids: 441
tet wedges: 0
tetrahedra: 37147
polyhedra: 0

Checking geometry...
Overall domain bounding box (-0.625 -0.0675 -2.072) (0.625 0.0675 0)
Mesh (non-empty) directions (1 1 1)
Mesh (non-empty, non-wedge) dimensions 3
Boundary openness (-7.8904e-19 -8.57159e-20 1.67732e-19) OK.
Max cell openness = 2.06529e-16 OK.
Max aspect ratio = 7.21027 OK.
Minumum face area = 1.73278e-05. Maximum face area = 0.000537385. Face area magnitudes OK.
Min volume = 4.0345e-08. Max volume = 7.71429e-06. Total volume = 0.253842. Cell volumes OK.
Mesh non-orthogonality Max: 60.6516 average: 13.6401
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 0.796547 OK.
checkMesh with -allTopology -allGeometry produces following results:

Quote:
Checking geometry...
Overall domain bounding box (-0.625 -0.0675 -2.072) (0.625 0.0675 0)
Mesh (non-empty) directions (1 1 1)
Mesh (non-empty, non-wedge) dimensions 3
Boundary openness (-7.8904e-19 -8.57159e-20 1.67732e-19) OK.
Max cell openness = 2.06529e-16 OK.
Max aspect ratio = 7.21027 OK.
Minumum face area = 1.73278e-05. Maximum face area = 0.000537385. Face area magnitudes OK.
Min volume = 4.0345e-08. Max volume = 7.71429e-06. Total volume = 0.253842. Cell volumes OK.
Mesh non-orthogonality Max: 60.6516 average: 13.6401
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 0.796547 OK.
Min/max edge length = 0.0032882 0.0420821 OK.
All angles in faces OK.
Face flatness (1 = flat, 0 = butterfly) : average = 1 min = 1
All face flatness OK.
Cell determinant (wellposedness) : minimum: 6.47133e-19 average: 3.63504
***Cells with small determinant found, number of cells: 128
<<Writing 128 under-determined cells to set underdeterminedCells

Failed 1 mesh checks.
In FLUENT there is no problem to simulate flow on this mesh. In OpenFoam it runs only few steps and then k and epsilon grows with Courant number and simulation produces floatpoint operation error:

Quote:
Starting time loop

Time = 0.001

Courant Number mean: 0.00129507 max: 0.33108
DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 6.52442e-10, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 9.95905e-10, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 1, Final residual = 1.07944e-09, No Iterations 2
DICPCG: Solving for p, Initial residual = 1, Final residual = 9.69663e-07, No Iterations 285
time step continuity errors : sum local = 3.98155e-11, global = -1.79587e-13, cumulative = -1.79587e-13
DICPCG: Solving for p, Initial residual = 0.27422, Final residual = 9.52287e-07, No Iterations 238
time step continuity errors : sum local = 3.33038e-09, global = -5.09634e-13, cumulative = -6.89221e-13
DILUPBiCG: Solving for epsilon, Initial residual = 0.999993, Final residual = 6.02371e-08, No Iterations 3
bounding epsilon, min: -2.86839e-09 max: 8.836e-05 average: 1.96149e-08
DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 1.23927e-06, No Iterations 2
bounding k, min: -7.82791e-14 max: 0.001176 average: 1.06553e-07
ExecutionTime = 4.47 s ClockTime = 4 s

Time = 0.002

Courant Number mean: 0.00373363 max: 0.33108
DILUPBiCG: Solving for Ux, Initial residual = 0.874019, Final residual = 5.40783e-07, No Iterations 27
DILUPBiCG: Solving for Uy, Initial residual = 0.885672, Final residual = 5.61245e-07, No Iterations 27
DILUPBiCG: Solving for Uz, Initial residual = 0.445827, Final residual = 1.98736e-06, No Iterations 27
DICPCG: Solving for p, Initial residual = 0.0962279, Final residual = 8.82523e-07, No Iterations 245
time step continuity errors : sum local = 3.29699e-09, global = 3.20759e-11, cumulative = 3.13867e-11
DICPCG: Solving for p, Initial residual = 0.888897, Final residual = 9.66196e-07, No Iterations 217
time step continuity errors : sum local = 2.91614e-05, global = 4.4315e-07, cumulative = 4.43182e-07
DILUPBiCG: Solving for epsilon, Initial residual = 0.241531, Final residual = 8.49532e-06, No Iterations 15
bounding epsilon, min: -1.12568 max: 1.83423 average: 9.78951e-05
DILUPBiCG: Solving for k, Initial residual = 0.933947, Final residual = 9.05932e-06, No Iterations 168
bounding k, min: -0.00254946 max: 0.00694748 average: 2.70098e-06
ExecutionTime = 11.21 s ClockTime = 11 s

Time = 0.003

Courant Number mean: 27.8704 max: 797936
DILUPBiCG: Solving for Ux, Initial residual = 0.715265, Final residual = 8.6611e-06, No Iterations 230
DILUPBiCG: Solving for Uy, Initial residual = 0.765986, Final residual = 9.36869e-06, No Iterations 188
DILUPBiCG: Solving for Uz, Initial residual = 0.807524, Final residual = 8.14793e-06, No Iterations 171
DICPCG: Solving for p, Initial residual = 0.937079, Final residual = 3.73413, No Iterations 1001
time step continuity errors : sum local = 1534.32, global = 3.78434, cumulative = 3.78434
DICPCG: Solving for p, Initial residual = 0.169545, Final residual = 0.00447933, No Iterations 1001
time step continuity errors : sum local = 113452, global = -313.066, cumulative = -309.282
DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 0.130458, No Iterations 1001
bounding epsilon, min: -3.5181e+15 max: 2.78475e+15 average: 1.20801e+11
DILUPBiCG: Solving for k, Initial residual = 0.806156, Final residual = 6.15771e-06, No Iterations 260
bounding k, min: -5.29862e+15 max: 5.65668e+15 average: 4.54536e+09
ExecutionTime = 47.22 s ClockTime = 47 s

Time = 0.004

Courant Number mean: 2.27745e+06 max: 8.64822e+09
DILUPBiCG: Solving for Ux, Initial residual = 0.724622, Final residual = 0.00590453, No Iterations 1001
DILUPBiCG: Solving for Uy, Initial residual = 0.75323, Final residual = 0.000498385, No Iterations 1001
DILUPBiCG: Solving for Uz, Initial residual = 0.707788, Final residual = 0.0016267, No Iterations 1001
DICPCG: Solving for p, Initial residual = 1, Final residual = 45.8841, No Iterations 1001
time step continuity errors : sum local = 8.26264e+30, global = 3.77052e+28, cumulative = 3.77052e+28
DICPCG: Solving for p, Initial residual = 1.82929e-06, Final residual = 5.69246e-07, No Iterations 2
time step continuity errors : sum local = 1.78212e+38, global = -8.31007e+33, cumulative = -8.31003e+33
DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 8.85622e+13, No Iterations 1001
bounding epsilon, min: -3.66455e+74 max: 4.53599e+74 average: 7.3757e+69
DILUPBiCG: Solving for k, Initial residual = 3.92025e-05, Final residual = 9.70635e-08, No Iterations 3
bounding k, min: -4.37338e+61 max: 1.53932e+66 average: 2.28586e+61
ExecutionTime = 106.52 s ClockTime = 106 s

Time = 0.005

Courant Number mean: 3.0383e+39 max: 2.15417e+44
#0 Foam::error:rintStack(Foam::Ostream&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Uninterpreted: [0xb7f6c420]
#3 Foam:ILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#4 Foam:ILUPreconditioner:ILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#5 Foam::lduMatrix:reconditioner::addasymMatrixCons tructorToTable<Foam:ILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/forsher/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#8 Foam::fvMatrix<Foam::Vector<double> >::solve(Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/turbFoam"
#9 Foam::lduMatrix::solverPerformance Foam::solve<Foam::Vector<double> >(Foam::tmp<Foam::fvMatrix<Foam::Vector<double> > > const&) in "/home/forsher/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/turbFoam"
#10 main in "/home/forsher/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/turbFoam"
#11 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#12 Foam::regIOobject::readIfModified() in "/home/forsher/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/turbFoam"
I've tried a number of solutions to get convergence of results. Starting from default turbFoam tutorial parameters, changed solvers to GAMG for pressure and smooth for momentum and scalars. Increased nonOrtho corrections. Later switched to first oder discretization (from linear to upwind). Converted mesh to polyhedral with polyDualMesh. None of that steps helped!

The only solution is to use othe k-epsilon model, for example realizableKE works perfectly with any settings and does not requires 1st oder or mesh improvement, changing solvers whatever!

So what could be the reason that standard k-epsilon stucks with this task?

Thank you! Waiting for your comments!
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Reply

Tags
k-epsilon model, seperation


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
digitizing an aerofoil/ meshing problems Simon FLUENT 2 February 27, 2006 11:18
Meshing an aerofoil with a plain flap Fatou FLUENT 0 November 15, 2005 14:24
2D Aerofoil Simulation StudentAndrew CFX 10 October 28, 2005 16:15
static stall atrh Main CFD Forum 1 March 9, 2004 06:07
stall yin Main CFD Forum 1 May 10, 2000 03:03


All times are GMT -4. The time now is 06:24.