mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Logic errors:
Decisions to skip faces with an already indexed point was wrong, the continue would be operating on the while loop, not the for loop over the face, adding a bool to be used afterwards. limitToQuadsOrTris logic would not work when it was false, it would never operate regardless of the size of the face.
This commit is contained in:
@ -525,17 +525,27 @@ Foam::label Foam::conformalVoronoiMesh::smoothSurfaceDualFaces
|
||||
Cell_circulator ccStart = incident_cells(*eit);
|
||||
Cell_circulator cc = ccStart;
|
||||
|
||||
bool skipFace = false;
|
||||
|
||||
do
|
||||
{
|
||||
if (dualPtIndexMap.found(cc->cellIndex()))
|
||||
{
|
||||
// One of the points of this face has already been
|
||||
// collapsed this sweep, leave for next sweep
|
||||
continue;
|
||||
|
||||
skipFace = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
} while (++cc != ccStart);
|
||||
|
||||
if (skipFace)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isBoundaryDualFace(eit))
|
||||
{
|
||||
face dualFace = buildDualFace(eit);
|
||||
@ -664,17 +674,27 @@ Foam::label Foam::conformalVoronoiMesh::collapseFaces
|
||||
Cell_circulator ccStart = incident_cells(*eit);
|
||||
Cell_circulator cc = ccStart;
|
||||
|
||||
bool skipFace = false;
|
||||
|
||||
do
|
||||
{
|
||||
if (dualPtIndexMap.found(cc->cellIndex()))
|
||||
{
|
||||
// One of the points of this face has already been
|
||||
// collapsed this sweep, leave for next sweep
|
||||
continue;
|
||||
|
||||
skipFace = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
} while (++cc != ccStart);
|
||||
|
||||
if (skipFace)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Cell_handle c = eit->first;
|
||||
Vertex_handle vA = c->vertex(eit->second);
|
||||
Vertex_handle vB = c->vertex(eit->third);
|
||||
@ -725,7 +745,7 @@ bool Foam::conformalVoronoiMesh::collapseFace
|
||||
scalar collapseSizeLimitCoeff
|
||||
) const
|
||||
{
|
||||
bool limitToQuadsOrTris = true;
|
||||
bool limitToQuadsOrTris = false;
|
||||
|
||||
const vector fC = f.centre(pts);
|
||||
|
||||
@ -920,7 +940,7 @@ bool Foam::conformalVoronoiMesh::collapseFace
|
||||
if
|
||||
(
|
||||
(fA < aspectRatio*sqr(targetFaceSize*collapseSizeLimitCoeff))
|
||||
&& (limitToQuadsOrTris && f.size() <= 4)
|
||||
&& (!limitToQuadsOrTris || f.size() <= 4)
|
||||
)
|
||||
{
|
||||
scalar guardFraction = cvMeshControls().edgeCollapseGuardFraction();
|
||||
|
||||
Reference in New Issue
Block a user