From afa565871364f37fee9c877759dba1ba5dc45f2e Mon Sep 17 00:00:00 2001 From: laurence Date: Thu, 26 Sep 2013 11:45:49 +0100 Subject: [PATCH 1/2] BUG: foamyHexMesh: Do not insert points between internal and surface points --- .../conformalVoronoiMesh/conformalVoronoiMesh.C | 2 +- .../conformalVoronoiMeshConformToSurface.C | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C index 547a65eb12..526367e46c 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C @@ -1273,7 +1273,7 @@ void Foam::conformalVoronoiMesh::move() if ( ( - (vA->internalPoint() || vB->internalPoint()) + (vA->internalPoint() && vB->internalPoint()) && (!vA->referred() || !vB->referred()) // || // ( diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C index b666539262..6ca14deb90 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C @@ -389,7 +389,7 @@ void Foam::conformalVoronoiMesh::buildSurfaceConformation() // Re-index the point pairs ptPairs_.reIndex(oldToNewIndices); - writePointPairs("pointPairs_initial.obj"); + //writePointPairs("pointPairs_initial.obj"); // Remove location from surface/edge tree @@ -630,7 +630,7 @@ void Foam::conformalVoronoiMesh::buildSurfaceConformation() // Reindex the point pairs ptPairs_.reIndex(oldToNewIndices); - writePointPairs("pointPairs_" + name(iterationNo) + ".obj"); + //writePointPairs("pointPairs_" + name(iterationNo) + ".obj"); if (Pstream::parRun()) { From aebfc3c75fa7c4f18eabf3132bbb25daa82d11ff Mon Sep 17 00:00:00 2001 From: laurence Date: Thu, 26 Sep 2013 12:08:28 +0100 Subject: [PATCH 2/2] ENH: foamyHexMesh: Do not insert surface points near edge points --- .../conformalVoronoiMesh.C | 22 +++++++++++++++++++ .../conformalVoronoiMesh.H | 3 +++ .../conformalVoronoiMeshConformToSurface.C | 4 +++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C index 526367e46c..c74740d812 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C @@ -354,6 +354,28 @@ bool Foam::conformalVoronoiMesh::nearFeaturePt(const Foam::point& pt) const } +bool Foam::conformalVoronoiMesh::surfacePtNearFeatureEdge +( + const Foam::point& pt +) const +{ + scalar exclusionRangeSqr = surfacePtExclusionDistanceSqr(pt); + + pointIndexHit info; + label featureHit; + + geometryToConformTo_.findEdgeNearest + ( + pt, + exclusionRangeSqr, + info, + featureHit + ); + + return info.hit(); +} + + void Foam::conformalVoronoiMesh::insertInitialPoints() { Info<< nl << "Inserting initial points" << endl; diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index bc4d724ec0..61b669882a 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -351,6 +351,9 @@ private: //- Check if a location is in exclusion range around a feature point bool nearFeaturePt(const Foam::point& pt) const; + //- Check if a surface point is in exclusion range around a feature edge + bool surfacePtNearFeatureEdge(const Foam::point& pt) const; + //- Insert the initial points into the triangulation, based on the // initialPointsMethod void insertInitialPoints(); diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C index 6ca14deb90..e2b6c0d2e8 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C @@ -2057,9 +2057,11 @@ void Foam::conformalVoronoiMesh::addSurfaceAndEdgeHits bool isNearFeaturePt = nearFeaturePt(surfPt); + bool isNearFeatureEdge = surfacePtNearFeatureEdge(surfPt); + bool isNearSurfacePt = nearSurfacePoint(surfHitI); - if (isNearFeaturePt || isNearSurfacePt) + if (isNearFeaturePt || isNearSurfacePt || isNearFeatureEdge) { keepSurfacePoint = false; }