From aebfc3c75fa7c4f18eabf3132bbb25daa82d11ff Mon Sep 17 00:00:00 2001 From: laurence <laurence> Date: Thu, 26 Sep 2013 12:08:28 +0100 Subject: [PATCH] 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 526367e46c4..c74740d8126 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 bc4d724ec01..61b669882a8 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 6ca14deb90d..e2b6c0d2e8e 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; } -- GitLab