diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementProblemCells.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementProblemCells.C index 296029b7d517b2ad61c66988672bd58ca0be66f8..48eff18670c454653c694945cdc828bc466c0501 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementProblemCells.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementProblemCells.C @@ -286,6 +286,10 @@ bool Foam::meshRefinement::isCollapsedFace const label faceI ) const { + // Severe nonorthogonality threshold + const scalar severeNonorthogonalityThreshold = + ::cos(degToRad(maxNonOrtho)); + vector s = mesh_.faces()[faceI].normal(points); scalar magS = mag(s); @@ -301,11 +305,11 @@ bool Foam::meshRefinement::isCollapsedFace if (mesh_.isInternalFace(faceI)) { label nei = mesh_.faceNeighbour()[faceI]; - vector d = ownCc - mesh_.cellCentres()[nei]; + vector d = mesh_.cellCentres()[nei] - ownCc; scalar dDotS = (d & s)/(mag(d)*magS + VSMALL); - if (dDotS < maxNonOrtho) + if (dDotS < severeNonorthogonalityThreshold) { return true; } @@ -320,11 +324,11 @@ bool Foam::meshRefinement::isCollapsedFace if (mesh_.boundaryMesh()[patchI].coupled()) { - vector d = ownCc - neiCc[faceI-mesh_.nInternalFaces()]; + vector d = neiCc[faceI-mesh_.nInternalFaces()] - ownCc; scalar dDotS = (d & s)/(mag(d)*magS + VSMALL); - if (dDotS < maxNonOrtho) + if (dDotS < severeNonorthogonalityThreshold) { return true; } @@ -337,7 +341,7 @@ bool Foam::meshRefinement::isCollapsedFace { // Collapsing normal boundary face does not cause problems with // non-orthogonality - return true; + return false; } } } @@ -663,7 +667,8 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells ) { nPrevented++; - //Pout<< "Preventing collapse of 8 anchor point cell " + //Pout<< "Preventing baffling/removal of 8 anchor point" + // << " cell " // << cellI << " at " << mesh_.cellCentres()[cellI] // << " since new volume " // << mesh_.cells()[cellI].mag(newPoints, mesh_.faces()) @@ -747,7 +752,7 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells ) { nPrevented++; - //Pout<< "Preventing collapse of 7 anchor cell " + //Pout<< "Preventing baffling of 7 anchor cell " // << cellI // << " at " << mesh_.cellCentres()[cellI] // << " since new volume " @@ -853,7 +858,8 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells ) { nPrevented++; - //Pout<< "Preventing collapse of face " << faceI + //Pout<< "Preventing baffling (to avoid collapse) of face " + // << faceI // << " with all boundary edges " // << " at " << mesh_.faceCentres()[faceI] // << endl; @@ -909,7 +915,7 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells ) { nPrevented++; - //Pout<< "Preventing collapse of coupled face " + //Pout<< "Preventing baffling of coupled face " // << faceI // << " with all boundary edges " // << " at " << mesh_.faceCentres()[faceI] @@ -943,7 +949,7 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells { Info<< "markFacesOnProblemCells : prevented " << returnReduce(nPrevented, sumOp<label>()) - << " internal faces fom getting converted into baffles." + << " internal faces from getting converted into baffles." << endl; }