CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   Good skewness values in checkMesh response (https://www.cfd-online.com/Forums/openfoam-meshing/80307-good-skewness-values-checkmesh-response.html)

 vkrastev September 22, 2010 06:27

Good skewness values in checkMesh response

Hello everybody, my question is short and (I hope) clear: I think I've understand that the skewness values reported in the checkMesh response are something different than the "traditional" skewness definition (as, for instance, in Fluent or other commercial packages).
So, apart from their real meaning, I just want to know what is the max skewness value below which the overall mesh quality can be considered satisfactory...

V. K.

 vkrastev September 22, 2010 07:57

Any replies?

 vkrastev September 23, 2010 08:38

Any replies?

 roth September 24, 2010 08:05

There are two sources of information. Skewness is defined in the code here:

OpenFOAM-1.7.x\src\meshTools\cellQuality\cellQuality.C

A picture and a description of how skewness impacts the solution can be found in Dr Jasak's thesis
(especially pg. 124):

http://powerlab.fsb.hr/ped/kturbo/Op...jeJasakPhD.pdf

In words, for a given face, draw a line between the centres of the two cells that share the face. Call this "d". Now find the intersection of d with the face. Call this "fi". Now draw a line between fi and the face center. Call this "m". The skewness is then just mag(m)/mag(d). The cell's skewness is just the max value found after travelling over all the faces in the cell.

Mike

 vkrastev September 24, 2010 08:21

Quote:
 Originally Posted by roth (Post 276502) There are two sources of information. Skewness is defined in the code here: OpenFOAM-1.7.x\src\meshTools\cellQuality\cellQuality.C A picture and a description of how skewness impacts the solution can be found in Dr Jasak's thesis (especially pg. 124): http://powerlab.fsb.hr/ped/kturbo/Op...jeJasakPhD.pdf In words, for a given face, draw a line between the centres of the two cells that share the face. Call this "d". Now find the intersection of d with the face. Call this "fi". Now draw a line between fi and the face center. Call this "m". The skewness is then just mag(m)/mag(d). The cell's skewness is just the max value found after travelling over all the faces in the cell. Mike
Thank you, your answer is very clear. But, however, following your explanation (and by your own experience), can we consider a max skewness value (from the checkMesh report) of about 1 as a good value for an unstructured mesh (mainly made by tetrahedrons with some amount of prisms)?

Thank you once again

V. K.

 aliqasemi March 11, 2012 06:58

Quote:
 Originally Posted by roth (Post 276502) There are two sources of information. Skewness is defined in the code here: OpenFOAM-1.7.x\src\meshTools\cellQuality\cellQuality.C A picture and a description of how skewness impacts the solution can be found in Dr Jasak's thesis (especially pg. 124): http://powerlab.fsb.hr/ped/kturbo/Op...jeJasakPhD.pdf In words, for a given face, draw a line between the centres of the two cells that share the face. Call this "d". Now find the intersection of d with the face. Call this "fi". Now draw a line between fi and the face center. Call this "m". The skewness is then just mag(m)/mag(d). The cell's skewness is just the max value found after travelling over all the faces in the cell. Mike

the skewness reported by checkMesh seems to be calculated in "Foam::primitiveMesh::checkFaceSkewness" (see http://foam.sourceforge.net/docs/cpp/a06916_source.html) which seems to use a different algorithm, anyway it gives me max skewness of 2.4 for a uniform orthogonal hexahedral mesh !!!, any comments on why this is the case?

 gfoam April 6, 2012 20:58

see at the code in http://foam.sourceforge.net/docs/cpp/a06916_source.html that the maximum skewness admissible is 4, so 2.4 may be a good value for skewness

 aliqasemi April 7, 2012 09:35

Thanks Gonzalo, Yes I figured this out, I am a snappyHexMesh user and this was confusing to me because when I was using a maxInternalSkewness=3 in snappyHexMeshDict, it had no effect. Here is the results of hours of my investigation:

If I remember correctly, there was two definitions for Skewness in openfoam, one calculated for cells (src\meshTools\cellQuality\cellQuality.C) and one for faces (Foam:: PrimitiveMesh::checkFaceSkewness in primitiveMeshCheck.C). The later is reported by checkMesh utility, and is greater than one.
The one which should be used in snappyHexMeshDict is the former one, whose value is, between 0 and 1. But apparently this is not documented anywhere and as a result the snappyHexMesh users usually use a limit for maxInternalSkewness and maxBoundarySkewness greater than one, which does not cause any trouble but is useless.

Correct me if I am wrong here please; I checked these things weeks ago and not thoroughly and I certainly have made mistakes.

 gfoam April 10, 2012 21:03

Sorry, but i do not use the snappyHexMesh utility, so i can't hel you with this. I use gmsh for the generation of my meshes :). But if i'm not wrong the limit for the skewness of 4 is the same for faces and cells. But in this page http://www.openfoam.org/docs/user/snappyHexMesh.php (official page of OpenFOAM, there is one table with examples of values of each keyword on the meshQualityControls sub-dictionary of snappyHexMeshDict, but in that puts a value of 4 for maxInternalSkewness (OK) and a value of 20 for maxBoundarySkewness (??), so i don't know.

 amcloughlin801 April 3, 2016 21:56

Quote:
 Originally Posted by aliqasemi (Post 353594) Thanks Gonzalo, Yes I figured this out, I am a snappyHexMesh user and this was confusing to me because when I was using a maxInternalSkewness=3 in snappyHexMeshDict, it had no effect. Here is the results of hours of my investigation: If I remember correctly, there was two definitions for Skewness in openfoam, one calculated for cells (src\meshTools\cellQuality\cellQuality.C) and one for faces (Foam:: PrimitiveMesh::checkFaceSkewness in primitiveMeshCheck.C). The later is reported by checkMesh utility, and is greater than one. The one which should be used in snappyHexMeshDict is the former one, whose value is, between 0 and 1. But apparently this is not documented anywhere and as a result the snappyHexMesh users usually use a limit for maxInternalSkewness and maxBoundarySkewness greater than one, which does not cause any trouble but is useless. Correct me if I am wrong here please; I checked these things weeks ago and not thoroughly and I certainly have made mistakes.
Hi there

I know this thread is very old now - and the info here might be valid for previous versions, but I've noticed a slight mistake for my version of OpenFOAM and just wanted to clarify it in case others read this.

For OpenFOAM 2.3.1, the checkMesh utility reports the parameters from /src/OpenFOAM/meshes/polyMesh/polyMeshCheck.

I found this out when I wanted to change the output of checkMesh to include a new parameter. So actually the face skewness is calculated in Foam::polyMesh::checkFaceSkewness in polyMeshCheck.C

As I said, just including this info to hopefully help anyone who is in the same situation I was!

 All times are GMT -4. The time now is 21:13.