diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C index 30b051d1e9ec2172fb244065d24b8ece8c69c164..f28e9affd09efcd72ac43f738b3de241c4669536 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C @@ -2111,7 +2111,6 @@ bool Foam::primitiveMesh::checkConcaveCells const labelList& fOwner = faceOwner(); const vectorField& fAreas = faceAreas(); const pointField& fCentres = faceCentres(); - const pointField& pts = points(); label nConcaveCells = 0; @@ -2119,8 +2118,6 @@ bool Foam::primitiveMesh::checkConcaveCells { const cell& cFaces = c[cellI]; - const labelList& cPoints = cellPoints()[cellI]; - bool concave = false; forAll(cFaces, i) @@ -2134,8 +2131,6 @@ bool Foam::primitiveMesh::checkConcaveCells const point& fC = fCentres[fI]; - const face& f = faces()[fI]; - vector fN = fAreas[fI]; fN /= max(mag(fN), VSMALL); @@ -2147,45 +2142,42 @@ bool Foam::primitiveMesh::checkConcaveCells fN *= -1; } - // Is any vertex of the cell on the wrong side of the - // plane of this face? + // Is the centre of any other face of the cell on the + // wrong side of the plane of this face? - forAll(cPoints, cPtI) + forAll(cFaces, j) { - label ptI = cPoints[cPtI]; - - // Skip points that are on this face - if (findIndex(f, ptI) > -1) + if (j != i) { - continue; - } + label fJ = cFaces[j]; - const point& pt = pts[ptI]; + const point& pt = fCentres[fJ]; - // If the cell is concave, the point will be on the - // positive normal side of the plane of f, defined by - // its centre and normal, and the angle between (pt - - // fC) and fN will be less than 90 degrees, so the dot - // product will be positive. + // If the cell is concave, the point will be on the + // positive normal side of the plane of f, defined by + // its centre and normal, and the angle between (pt - + // fC) and fN will be less than 90 degrees, so the dot + // product will be positive. - vector pC = (pt - fC); + vector pC = (pt - fC); - pC /= max(mag(pC), VSMALL); + pC /= max(mag(pC), VSMALL); - if ((pC & fN) > -planarCosAngle_) - { - // Concave or planar face + if ((pC & fN) > -planarCosAngle_) + { + // Concave or planar face - concave = true; + concave = true; - if (setPtr) - { - setPtr->insert(cellI); - } + if (setPtr) + { + setPtr->insert(cellI); + } - nConcaveCells++; + nConcaveCells++; - break; + break; + } } } } @@ -2197,8 +2189,8 @@ bool Foam::primitiveMesh::checkConcaveCells { if (debug || report) { - Info<< " ***Concave cells found, number of cells: " - << nConcaveCells << endl; + Info<< " ***Concave cells (using face planes) found," + << " number of cells: " << nConcaveCells << endl; } return true;