Adding counter to prevent infinite recursion in displacement limiting

function.
This commit is contained in:
graham
2010-01-05 17:59:25 +00:00
parent 3eb8456934
commit 2c52371be1
2 changed files with 13 additions and 3 deletions

View File

@ -382,7 +382,8 @@ private:
void limitDisplacement void limitDisplacement
( (
const Triangulation::Finite_vertices_iterator& vit, const Triangulation::Finite_vertices_iterator& vit,
vector& displacement vector& displacement,
label callCount = 0
) const; ) const;
//- Check if a location is in the exclusion range of an existing feature //- Check if a location is in the exclusion range of an existing feature

View File

@ -486,9 +486,18 @@ void Foam::conformalVoronoiMesh::dualCellLargestSurfaceProtrusion
void Foam::conformalVoronoiMesh::limitDisplacement void Foam::conformalVoronoiMesh::limitDisplacement
( (
const Triangulation::Finite_vertices_iterator& vit, const Triangulation::Finite_vertices_iterator& vit,
vector& displacement vector& displacement,
label callCount
) const ) const
{ {
callCount++;
// Do not allow infinite recursion
if (callCount > 7)
{
return;
}
point pt = topoint(vit->point()); point pt = topoint(vit->point());
point dispPt = pt + displacement; point dispPt = pt + displacement;
@ -556,7 +565,7 @@ void Foam::conformalVoronoiMesh::limitDisplacement
// Info<< " Limiting displacement of point " << pt << endl; // Info<< " Limiting displacement of point " << pt << endl;
limitDisplacement(vit, displacement); limitDisplacement(vit, displacement, callCount);
} }
} }