diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C index d20a540a57fe0f5816139893cd72387b7e4bc281..b881a5ae77409b71eaeb8c1c78d7d5ab36b7c5ba 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C @@ -380,11 +380,11 @@ bool Foam::polyMeshTetDecomposition::checkFaceTets ) { const labelList& own = mesh.faceOwner(); - // const labelList& nei = mesh.faceNeighbour(); + const labelList& nei = mesh.faceNeighbour(); const polyBoundaryMesh& patches = mesh.boundaryMesh(); const vectorField& cc = mesh.cellCentres(); - // const vectorField& fc = mesh.faceCentres(); + const vectorField& fc = mesh.faceCentres(); // Calculate coupled cell centre pointField neiCc(mesh.nFaces() - mesh.nInternalFaces()); @@ -398,62 +398,62 @@ bool Foam::polyMeshTetDecomposition::checkFaceTets const faceList& fcs = mesh.faces(); - // const pointField& p = mesh.points(); + const pointField& p = mesh.points(); label nErrorTets = 0; forAll(fcs, faceI) { - // const face& f = fcs[faceI]; - - // forAll(f, fPtI) - // { - // scalar tetQual = tetPointRef - // ( - // p[f[fPtI]], - // p[f.nextLabel(fPtI)], - // fc[faceI], - // cc[own[faceI]] - // ).quality(); - - // if (tetQual > -tol) - // { - // if (setPtr) - // { - // setPtr->insert(faceI); - // } - - // nErrorTets++; - // break; // no need to check other tets - // } - // } + const face& f = fcs[faceI]; + + forAll(f, fPtI) + { + scalar tetQual = tetPointRef + ( + p[f[fPtI]], + p[f.nextLabel(fPtI)], + fc[faceI], + cc[own[faceI]] + ).quality(); + + if (tetQual > -tol) + { + if (setPtr) + { + setPtr->insert(faceI); + } + + nErrorTets++; + break; // no need to check other tets + } + } if (mesh.isInternalFace(faceI)) { // Create the neighbour tet - it will have positive volume - // const face& f = fcs[faceI]; - - // forAll(f, fPtI) - // { - // scalar tetQual = tetPointRef - // ( - // p[f[fPtI]], - // p[f.nextLabel(fPtI)], - // fc[faceI], - // cc[nei[faceI]] - // ).quality(); - - // if (tetQual < tol) - // { - // if (setPtr) - // { - // setPtr->insert(faceI); - // } - - // nErrorTets++; - // break; - // } - // } + const face& f = fcs[faceI]; + + forAll(f, fPtI) + { + scalar tetQual = tetPointRef + ( + p[f[fPtI]], + p[f.nextLabel(fPtI)], + fc[faceI], + cc[nei[faceI]] + ).quality(); + + if (tetQual < tol) + { + if (setPtr) + { + setPtr->insert(faceI); + } + + nErrorTets++; + break; + } + } if (findSharedBasePoint(mesh, faceI, tol, report) == -1) { diff --git a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C index 8c84ac72f55ad6bb38238e487dc9807bff7b3227..fa6d11d50098454357d337c03e556d68dbeeff6a 100644 --- a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C +++ b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C @@ -309,6 +309,7 @@ Foam::scalar Foam::polyMeshGeometry::calcSkewness } +// Create the neighbour pyramid - it will have positive volume bool Foam::polyMeshGeometry::checkFaceTet ( const polyMesh& mesh, @@ -787,7 +788,7 @@ bool Foam::polyMeshGeometry::checkFaceTets // check whether decomposing each cell into tets results in // positive volume, non-flat tets const labelList& own = mesh.faceOwner(); - // const labelList& nei = mesh.faceNeighbour(); + const labelList& nei = mesh.faceNeighbour(); const polyBoundaryMesh& patches = mesh.boundaryMesh(); // Calculate coupled cell centre @@ -802,50 +803,48 @@ bool Foam::polyMeshGeometry::checkFaceTets label nErrorTets = 0; - // bool tetError = false - forAll(checkFaces, i) { label faceI = checkFaces[i]; // Create the owner pyramid - note: exchange cell and face centre // to get positive volume. - // tetError = checkFaceTet - // ( - // mesh, - // report, - // minTetQuality, - // p, - // faceI, - // cellCentres[own[faceI]], // face centre - // faceCentres[faceI], // cell centre - // setPtr - // ); - - // if (tetError) - // { - // nErrorTets++; - // } + bool tetError = checkFaceTet + ( + mesh, + report, + minTetQuality, + p, + faceI, + cellCentres[own[faceI]], // face centre + faceCentres[faceI], // cell centre + setPtr + ); + + if (tetError) + { + nErrorTets++; + } if (mesh.isInternalFace(faceI)) { // Create the neighbour tets - they will have positive volume - // tetError = checkFaceTet - // ( - // mesh, - // report, - // minTetQuality, - // p, - // faceI, - // faceCentres[faceI], // face centre - // cellCentres[nei[faceI]], // cell centre - // setPtr - // ); - - // if (tetError) - // { - // nErrorTets++; - // } + bool tetError = checkFaceTet + ( + mesh, + report, + minTetQuality, + p, + faceI, + faceCentres[faceI], // face centre + cellCentres[nei[faceI]], // cell centre + setPtr + ); + + if (tetError) + { + nErrorTets++; + } if ( @@ -921,40 +920,40 @@ bool Foam::polyMeshGeometry::checkFaceTets label face0 = baffles[i].first(); label face1 = baffles[i].second(); - // tetError = checkFaceTet - // ( - // mesh, - // report, - // minTetQuality, - // p, - // face0, - // cellCentres[own[face0]], // face centre - // faceCentres[face0], // cell centre - // setPtr - // ); - - // if (tetError) - // { - // nErrorTets++; - // } - - // // Create the neighbour tets - they will have positive volume - // tetError = checkFaceTet - // ( - // mesh, - // report, - // minTetQuality, - // p, - // face0, - // faceCentres[face0], // face centre - // cellCentres[own[face1]], // cell centre - // setPtr - // ); - - // if (tetError) - // { - // nErrorTets++; - // } + bool tetError = checkFaceTet + ( + mesh, + report, + minTetQuality, + p, + face0, + cellCentres[own[face0]], // face centre + faceCentres[face0], // cell centre + setPtr + ); + + if (tetError) + { + nErrorTets++; + } + + // Create the neighbour tets - they will have positive volume + tetError = checkFaceTet + ( + mesh, + report, + minTetQuality, + p, + face0, + faceCentres[face0], // face centre + cellCentres[own[face1]], // cell centre + setPtr + ); + + if (tetError) + { + nErrorTets++; + } if (