
[Sponsors] 
May 24, 2013, 08:45 
Nonorthogonality and pressure jumps

#1 
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Hello everyone,
I am facing a problem with my simulation. I try to simulate a particle within a tubeflow. It is a steady state problem. The velocity profile works perfectly, but all my simulations lead to pressure jumps around the particle and on the surface of the particle. They seem to be caused by the nonorthogonality of the mesh, because they only appear near the particle where the mesh changes. pressure jumps1.JPG pressure jumps2.JPG I tried different things to solve this problem. First I raised nNonOrthogonalCorrectors to 2, 3, 5 and even 15, but the problem still appeared. I also changed in fvschemes sngradschemes and laplacianschemes from “corrected” to “limited 0,333”, but still nothing changed. Last I changed the solver for p (GAMG>PCG), but there were still pressure jumps. I use simpleFoam as a solver and I attached the fvschemes, fvsoluten, controldict and the result of the checkMesh to this post. Thank you in advance. controlDict Code:
/** C++ **\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.2.0   \\ / A nd  Web: www.OpenFOAM.org   \\/ M anipulation   \**/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application simpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 20000; deltaT 1; writeControl timeStep; writeInterval 200; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; functions ( forces { type forces; functionObjectLibs ("libforces.so"); outputControl timeStep; outputInterval 50; patches (CYLINDER); // pname p; // Uname U; rhoName rhoInf; log true; // write force data to standard output rhoInf 998.21; // reference rho CofR (0.03 0 0.00315); // Center of rotation } ); // ************************************************************************* // Code:
/** C++ **\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.2.0   \\ / A nd  Web: www.OpenFOAM.org   \\/ M anipulation   \**/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwind grad(U); div(phi,nuTilda) bounded Gauss linearUpwind grad(nuTilda); div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1A(U)),p) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; laplacian(1,p) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } // ************************************************************************* // Code:
/** C++ **\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.2.0   \\ / A nd  Web: www.OpenFOAM.org   \\/ M anipulation   \**/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e08; relTol 0.1; smoother GaussSeidel; nPreSweeps 1; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 836; agglomerator faceAreaPair; mergeLevels 1; } U { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e08; relTol 0.1; } nuTilda { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e08; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; residualControl { p 1e5; U 1e5; nuTilda 1e5; } } relaxationFactors { fields { p 0.3; } equations { U 0.7; nuTilda 0.7; } } // ************************************************************************* // Code:
/**\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.2.0   \\ / A nd  Web: www.OpenFOAM.org   \\/ M anipulation   \**/ Build : 2.2.05be49240882f Exec : checkMesh Date : May 24 2013 Time : 14:28:58 Host : "smpc32l" PID : 5965 Case : /home/likewiseopen/BCINET/stoeckf/OpenFOAM/stoeckf2.2.0/run/Versuch2Reihe2 nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring runtime modified files using timeStampMaster allowSystemOperations : Allowing usersupplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create polyMesh for time = 0 Time = 0 Mesh stats points: 733616 faces: 2155759 internal faces: 2111465 cells: 711204 faces per cell: 6 boundary patches: 5 point zones: 0 face zones: 1 cell zones: 1 Overall number of cells of each type: hexahedra: 711204 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 CYLINDER 4485 4564 ok (nonclosed singly connected) WALL 9779 9984 ok (nonclosed singly connected) OUTLET.2 3744 3842 ok (nonclosed singly connected) INLET.1 3744 3842 ok (nonclosed singly connected) SYMMETRY 22542 22864 ok (nonclosed singly connected) Checking geometry... Overall domain bounding box (0.02 0.00499844 0.005) (0.04 6.02937e14 0.005) Mesh (nonempty, nonwedge) directions (1 1 1) Mesh (nonempty) directions (1 1 1) Boundary openness (1.09137e16 3.82779e16 7.56275e17) OK. Max cell openness = 3.28499e16 OK. Max aspect ratio = 15.0684 OK. Minimum face area = 1.16736e10. Maximum face area = 9.15643e08. Face area magnitudes OK. Min volume = 1.25716e15. Max volume = 9.58542e12. Total volume = 7.84868e07. Cell volumes OK. Mesh nonorthogonality Max: 57.1982 average: 14.0225 Nonorthogonality check OK. Face pyramids OK. Max skewness = 1.11139 OK. Coupled point location match (average 0) OK. Mesh OK. 

May 31, 2013, 06:44 

#2 
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Hello,
I solved the case now with icoFoam (with 3 nNonOrthogonalCorrectors) instead of simpleFoam, but the results stayed the same and there where still pressure jumps. Does really noone has any idea what i could try to solve the problem? Greetings, Florian 

May 31, 2013, 08:25 

#3 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 655
Rep Power: 23 
Hi Florian,
You are using Gauss linear for the grad(p) and grad(U), which is not so accurate for nonorthogonal faces. Try leastSquares, which should maintain second order accuracy on nonorthogonal faces. Best regards, Philip 

June 3, 2013, 05:01 

#4 
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Hey Philip,
thank you for your reply. I tried it with leastSquares, but there were still pressure jumps around the sphere. Do you know any other option to solve this problem? Best regards, Florian 

June 3, 2013, 09:08 

#5  
New Member
Michal
Join Date: Apr 2012
Location: Czech Republic
Posts: 27
Rep Power: 7 
Quote:
try limited schemes for pressure gradient, like Code:
grad(p) faceMDLimited Gauss linear 1; M 

June 4, 2013, 08:16 

#6  
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Hey,
I tried it with Quote:
Best regards, Florian 

June 4, 2013, 11:22 

#7 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 655
Rep Power: 23 
Hi Florian,
Do these peaks appear in the internal domain or just near the boundary? i.e. if you clip the domain in ParaView through the internal domain, do you see these jumps at the nonorthogonal faces? Philip 

June 5, 2013, 05:43 

#8  
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Quote:
they also appear in the internal domain innerfield.JPG Florian 

June 5, 2013, 05:48 

#9 
Member
Join Date: Sep 2012
Posts: 60
Rep Power: 7 
Hi Florian,
It doesn't seem to be a nonorthogonality problem of the mesh. Max. skewness ratio is well within the limits. could u post a pic of your mesh ? Maybe, try coarsening the mesh and see what happens to pressure simulation. Also try putting 10e08 as residual control for pressure if not less. Check your pressure boundary condition on 'ÇYLINDER' based on case setup. regards, achyutan 

June 6, 2013, 06:26 

#10  
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Quote:
first a pic of the mesh (only cylinder and symmetryplane): mesh.jpg I ran the simulation with a coarsed mesh, but the results were the same. Around the sphere were pressure jumps. I also ran a simulation with the residual condition e08, but this did not change anything. The pressure boundary condition for the sphere is "zeroGradient". I think this should be okay and the pressure around the sphere looks okay except for the pressure jumps. It seems like these jumps are at the positions where the mesh changes. Florian 

June 7, 2013, 07:19 

#11 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 655
Rep Power: 23 
Hi Florian,
Hmmnn this is clearly an issue with mesh nonorthgonality and/or mesh skewness. Did you try leastSquares for grad(U) and grad(p)? Also, you could try skewCorrected for some of the divergence/laplacian terms e.g. Code:
div((nuEff*dev(T(grad(U))))) Gauss skewCorrected linear; 

June 11, 2013, 05:05 

#12  
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Quote:
I tried it a few simulations with your suggestions, but the results stayed the same. Florian 

June 12, 2013, 08:28 

#13 
New Member
Lutz Goedeke
Join Date: May 2013
Location: Dortmund/Germany
Posts: 6
Rep Power: 6 
Hey Florian, i had the same problems while simulating a micro channel flow because there were areas, where circular mesh parts and rectangular parts were connected.
I think the problem occurs because there are points where more than 4 cells are in contact with each other (two dimensional, more than 8 in 3d). I am pretty sure that this is the reason why you get the peaks in the pressure field (i had them in my velocity fields, maybe resulting from pressure jumps). Do you get the same problems when you try to simulate the flow around a non spherical particle, maybe a cube? That could eliminate other possible influences. I could not find a solution when i was working on that case, so i switched to another mesh because of time issues, which then worked fine (unstructured, gmsh). I hope that this might help you to track down the reason for this 

June 17, 2013, 07:22 

#14 
New Member
Florian
Join Date: May 2013
Posts: 12
Rep Power: 6 
Hello Lutz,
I am facing this problem for my Bachelor thesis and at the moment I don't have the time to try out the mesh with a nonsphericle particle. When there is some time left, I will try it. Florian 

Tags 
orthogonal, pressure jump, simplefoam 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
RPM in Wind Turbine  Pankaj  CFX  9  November 23, 2009 05:05 
Concentric tube heat exchanger (AirWater)  Young  CFX  5  October 6, 2008 23:17 
Confused  Jonas Holdeman  CFDWiki  5  May 21, 2007 07:18 
Status of FV versus FEA research in CFD  diaw  Main CFD Forum  8  February 11, 2005 01:52 