
[Sponsors] 
April 1, 2013, 09:55 
Accuracy Improvement

#1 
Senior Member

Hi There,
I am looking for your suggestion and help to improve the accuracy of my simulation results. I am simulating axial flow fan using MRFSimpleFoam (OF2.1.1), I have obtained some results with 22% error. Now I want to improve the results, please give me your suggestions and advise. Case setup: Mesh :5.25Million Cells,(hex+tet) volumeFlowRate :16m3/s turbulence model :kEpsilon y+ :50 70 CheckMesh output: Create time Create polyMesh for time = 0 Time = 0 Mesh stats points: 4740987 faces: 15102544 internal faces: 14812112 cells: 5235464 boundary patches: 16 point zones: 0 face zones: 1 cell zones: 2 Overall number of cells of each type: hexahedra: 4480000 prisms: 0 wedges: 0 pyramids: 12800 tet wedges: 0 tetrahedra: 742664 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 outlet 6400 6561 ok (nonclosed singly connected) inlet 6400 6561 ok (nonclosed singly connected) top2 44000 44631 ok (nonclosed singly connected) top1 11276 5850 ok (nonclosed singly connected) top0 12000 12231 ok (nonclosed singly connected) center1 44000 44631 ok (nonclosed singly connected) fan 30520 15608 ok (nonclosed singly connected) center0 12000 12231 ok (nonclosed singly connected) ILR0 12000 12231 ok (nonclosed singly connected) ILR1 12000 12231 ok (nonclosed singly connected) OLR0 44000 44631 ok (nonclosed singly connected) OLR1 44000 44631 ok (nonclosed singly connected) CLR0 3308 1766 ok (nonclosed singly connected) CLR1 3308 1766 ok (nonclosed singly connected) FCLR0 2610 1411 ok (nonclosed singly connected) FCLR1 2610 1411 ok (nonclosed singly connected) Checking geometry... Overall domain bounding box (0.0816836 0.156811 1.5) (0.59502 0.771 6) Mesh (nonempty, nonwedge) directions (1 1 1) Mesh (nonempty) directions (1 1 1) Boundary openness (5.07799e16 7.24744e15 8.38482e17) OK. Max cell openness = 3.31697e16 OK. Max aspect ratio = 12.0865 OK. Minumum face area = 1.42058e06. Maximum face area = 0.000219702. Face area magnitudes OK. Min volume = 7.33795e10. Max volume = 1.27874e06. Total volume = 1.4718. Cell volumes OK. Mesh nonorthogonality Max: 65.6246 average: 9.54892 Nonorthogonality check OK. Face pyramids OK. Max skewness = 0.920449 OK. Coupled point location match (average 2.51368e09) OK. Mesh OK. End fvSchemes: ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(p) leastSquares; grad(omega) Gauss linear; grad(epsilon) Gauss linear; grad(U) Gauss linear; grad(k) Gauss linear; } divSchemes { default none; div(phi,U) Gauss upwind; div(phi,k) Gauss upwind; div(phi,omega) Gauss upwind; div(phi,epsilon) Gauss upwind ; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear limited 0.7; laplacian((1A(U)),p) Gauss linear limited 1; laplacian(DkEff,k) Gauss linear limited 0.7; laplacian(DepsilonEff,epsilon) Gauss linear limited 0.5; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default limited 0.5; } fluxRequired { default no; p ; } Due to the nonorthogonality issue I am not able to use full corrected schemes. So I am using some limitations for that. However the above schemes are under predicts the torque and pressure raise. obtained torque 67.2 Nm, expected is 72 Nm, obtained pressure raise 177Pa expected 227Pa When I use full corrected scheme, I am facing convergence problem. Epsilon always bounding and fluctuating for fully corrected schemes. full corrected schemes over predicts the pressure and torque. I have attached the convergence plot for both cases, please have a look. fvSolution solvers { p { solver GAMG; tolerance 1e08; relTol 0.01; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } U { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e07; relTol 0.01; minIter 1; maxIter 1000; } k { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e07; relTol 0.01; minIter 1; maxIter 1000; } omega { solver smoothSolver; smoother GaussSeidel; tolerance 1e7; relTol 0.01; nSweeps 1; minIter 1; maxIter 1000; } epsilon { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e07; relTol 0.005; minIter 1; maxIter 1000; } } SIMPLE { momentumPredictor yes; nNonOrthogonalCorrectors 1; pRefCell 0; pRefValue 0; convergence 1e08; residualControl { p 1e6; U 1e6; nuTilda 1e6; } } potentialFlow { nNonOrthogonalCorrectors 10; } relaxationFactors { p 0.3; U 0.5; k 0.5; epsilon 0.5; omega 0.7; } I have attached the 0 folder for your check, please have a look and give me some suggestions to improve my results. I tried with different mesh sizes but there no much difference. Thanks, Sivakumar 

April 1, 2013, 10:03 

#2 
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19 
why don't you use higher order schemes in return of Upwind like limitedLinear or linearUpwind,... to improve accuracy?does it go unstable?


April 1, 2013, 10:47 

#3 
Senior Member

Hi,
Thanks for your reply, I didn’t try the higher order schemes, for stability purpose I am using upwind. If its possible can you please tell me which higher order scheme will be nice? Thanks, Sivakumar 

April 1, 2013, 11:08 

#4 
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19 
test vanLeer for div(phi,...( all except U)) and vanLeerV for div(phi,U)
in one run and in another gamma and gammaV respectively(check for its correct capitals,i don't remember) and limitedLinear 1; and limitedLinearV 1; if they are stable or not. 

April 1, 2013, 11:38 

#5 
Senior Member

Hi,
Now I changed my fvSchemes as follows, ddtSchemes { default steadyState; } gradSchemes { default leastSquares; } divSchemes { default none; div(phi,U) Gauss vanLeerV; div(phi,k) Gauss vanLeer; div(phi,omega) Gauss vanLeer; div(phi,epsilon) Gauss vanLeer; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear limited 0.7; laplacian((1A(U)),p) Gauss linear limited 1; laplacian(DkEff,k) Gauss linear limited 0.7; laplacian(DepsilonEff,epsilon) Gauss linear limited 0.5; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default limited 0.5; } fluxRequired { default no; p ; } epsilon and k both started bounding Time = 1 smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.00119926, No Iterations 4 smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 0.000995463, No Iterations 4 smoothSolver: Solving for Uz, Initial residual = 1, Final residual = 0.00217619, No Iterations 4 GAMG: Solving for p, Initial residual = 1, Final residual = 0.00988547, No Iterations 176 GAMG: Solving for p, Initial residual = 0.0371835, Final residual = 0.000146369, No Iterations 3 time step continuity errors : sum local = 0.164183, global = 0.000512996, cumulative = 0.000512996 smoothSolver: Solving for epsilon, Initial residual = 0.0464226, Final residual = 0.000107885, No Iterations 4 bounding epsilon, min: 22.5128 max: 335.166 average: 2.43186 smoothSolver: Solving for k, Initial residual = 1, Final residual = 0.00464138, No Iterations 4 bounding k, min: 15.3328 max: 108.947 average: 0.465543 ExecutionTime = 92.65 s ClockTime = 100 s Time = 2 smoothSolver: Solving for Ux, Initial residual = 0.353353, Final residual = 0.00311845, No Iterations 4 smoothSolver: Solving for Uy, Initial residual = 0.365416, Final residual = 0.0034596, No Iterations 4 smoothSolver: Solving for Uz, Initial residual = 0.875299, Final residual = 0.00135475, No Iterations 6 GAMG: Solving for p, Initial residual = 0.0259538, Final residual = 0.000255184, No Iterations 38 GAMG: Solving for p, Initial residual = 0.0297287, Final residual = 0.000223586, No Iterations 4 time step continuity errors : sum local = 0.113884, global = 0.0134757, cumulative = 0.0139887 smoothSolver: Solving for epsilon, Initial residual = 0.133081, Final residual = 0.000566866, No Iterations 4 bounding epsilon, min: 1001.87 max: 130408 average: 17.0609 smoothSolver: Solving for k, Initial residual = 0.384752, Final residual = 0.00320007, No Iterations 4 bounding k, min: 66.4828 max: 700.014 average: 0.775518 ExecutionTime = 120.93 s ClockTime = 130 s Time = 3 smoothSolver: Solving for Ux, Initial residual = 0.703536, Final residual = 0.00279422, No Iterations 4 smoothSolver: Solving for Uy, Initial residual = 0.814474, Final residual = 0.00330137, No Iterations 4 smoothSolver: Solving for Uz, Initial residual = 0.672708, Final residual = 0.00104579, No Iterations 6 GAMG: Solving for p, Initial residual = 0.0775572, Final residual = 0.000750949, No Iterations 80 GAMG: Solving for p, Initial residual = 0.0451604, Final residual = 0.000448057, No Iterations 11 time step continuity errors : sum local = 0.121181, global = 0.016846, cumulative = 0.00285731 smoothSolver: Solving for epsilon, Initial residual = 0.201837, Final residual = 0.000159865, No Iterations 6 bounding epsilon, min: 37133.4 max: 1.16809e+06 average: 77.2635 smoothSolver: Solving for k, Initial residual = 0.428879, Final residual = 0.000492869, No Iterations 6 bounding k, min: 2619.3 max: 26710.7 average: 1.564 ExecutionTime = 170.6 s ClockTime = 181 s it seems the calculation will be stable only for first order schemes (upwind). any Idea? Thanks, Sivakumar 

April 1, 2013, 14:28 

#6 
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19 
what do you mean by full corrected schemes?did you use unCorrected scheme in laplacianScheme so far?
i thought when there is nonorthogonality in mesh its better to use corrected scheme to calculate the gradients normal to faces.whats the correct usage of it? 

April 1, 2013, 16:26 

#7 
Senior Member

Hi,
Till now I am using limited 0.5 for LaplacianScheme, because my mesh has orthogonal angle of 65, so I need to use it, otherwise the calculation will diverge. I don't know, is there any other way to get rid of this issue? Just have a look of my first post, if you know any other way I am ready to use it. Thanks, Sivakumar 

April 1, 2013, 16:32 

#8 
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19 
i don't understand why should corrected scheme lead to diverge when the mesh has non orthogonality?could you tell me?
thanks. 

April 1, 2013, 16:47 

#9 
Senior Member

I have seen in the training materials, when your nonorthogonal angle is
below 50 you can use full corrected scheme, if it has angle of 50 to 70 you need to use limited correction 70 to 80 stability possible accuracy compromised above 80 stability very difficult to attain. based on this information I am using limited 0.5, I tried 0.7 as well but I am not able to get the stability. I feel still there are some tricky things to get good accuracy, that is the information I am looking from you people. Thanks, Sivakumar 

April 2, 2013, 01:03 

#10 
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,210
Rep Power: 19 
then when uncorrected is applicable?when mesh is orthogonal.correct?


Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Grid refinement study for Order of accuracy and GCI  Chander  CFX  5  May 3, 2011 19:13 
Taylor Vortex and Accuracy  ganesh  Main CFD Forum  0  April 7, 2010 22:59 
Temporal accuracy  ganesh  Main CFD Forum  0  February 29, 2008 06:32 
accuracy of Discontinuous Galerkin  Qu Kun  Main CFD Forum  0  September 6, 2004 09:19 
time accuracy test  nat  Main CFD Forum  0  April 1, 2003 23:24 