From a517fbfcbe8c5aceb15a4b58f47ac98a97bffa51 Mon Sep 17 00:00:00 2001
From: laurence <laurence>
Date: Fri, 4 Jan 2013 12:45:48 +0000
Subject: [PATCH] BUG: surfaceFeatureExtract: Fix the search distance for
 feature proximity

---
 .../surfaceFeatureExtract/surfaceFeatureExtract.C  | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index fb54a417a18..9d523c1cd6e 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -1425,8 +1425,6 @@ int main(int argc, char *argv[])
             const scalar searchDistance =
                 readScalar(surfaceDict.lookup("maxFeatureProximity"));
 
-            const scalar radiusSqr = sqr(searchDistance);
-
             scalarField featureProximity(surf.size(), searchDistance);
 
             forAll(surf, fI)
@@ -1434,6 +1432,12 @@ int main(int argc, char *argv[])
                 const triPointRef& tri = surf[fI].tri(surf.points());
                 const point& triCentre = tri.circumCentre();
 
+                const scalar radiusSqr = min
+                (
+                    sqr(4*tri.circumRadius()),
+                    sqr(searchDistance)
+                );
+
                 List<pointIndexHit> hitList;
 
                 feMesh.allNearestFeatureEdges(triCentre, radiusSqr, hitList);
@@ -1493,6 +1497,10 @@ int main(int argc, char *argv[])
         Info<< endl;
     }
 
+    Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+        << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+        << nl << endl;
+
     Info<< "End\n" << endl;
 
     return 0;
-- 
GitLab