Hello! Short summary of the problem: it seems that
checkMesh utility calculates cell skewness incorrectly.
The more detailed description. I create a 2D mesh using the
blockMeshDict from the attachment. Regular non-orthogonal mesh is created. I show an example in the attachment, but the mesh looks the same everywhere. When I run
checkMesh, it says:
Code:
Max skewness = 1.825084 OK.
However, according to the code in the file
OpenFOAM-2.1.1/src/meshTools/cellQuality
Code:
scalar dOwn = mag
(
(faceCtrs[faceI] - cellCtrs[own[faceI]]) & areas[faceI]
)/mag(areas[faceI]);
scalar dNei = mag
(
(cellCtrs[nei[faceI]] - faceCtrs[faceI]) & areas[faceI]
)/mag(areas[faceI]);
point faceIntersection =
cellCtrs[own[faceI]]
+ (dOwn/(dOwn+dNei))*(cellCtrs[nei[faceI]] - cellCtrs[own[faceI]]);
scalar skewness =
mag(faceCtrs[faceI] - faceIntersection)
/(mag(cellCtrs[nei[faceI]] - cellCtrs[own[faceI]]) + VSMALL);
and to the definition of skewness in this Wiki page (
https://openfoamwiki.net/index.php/CheckMesh), the skewness value should be exactly zero, because every line that connects two cell centers goes exactly through the face center!
The same problem happens in all OpenFOAM versions. Does anyone have any idea why does it happen? I append also the whole case folder in the attachments, for easier replication. Just unzip it and run
blockMesh and
checkMesh.