From 139222604f2c2b81586eed15d19a5daf6a80044a Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 10 Apr 2019 10:34:50 +0100
Subject: [PATCH] BUG: snappyHexMesh: attraction distance mapping. Fixes #941.

---
 .../snappySnapDriverFeature.C                 |  4 ++--
 .../searchableSurfacesQueries.C               | 24 +++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
index 9421042f596..dda92341d8f 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
@@ -308,7 +308,7 @@ void Foam::snappySnapDriver::calcNearestFace
         (
             labelList(1, zoneSurfi),
             fc,
-            sqr(faceSnapDist),// sqr of attract dist
+            sqr(scalarField(faceSnapDist, ppFaces)),// sqr of attract dist
             hitSurface,
             hitInfo,
             hitRegion,
@@ -384,7 +384,7 @@ void Foam::snappySnapDriver::calcNearestFace
     (
         unzonedSurfaces,
         fc,
-        sqr(faceSnapDist),// sqr of attract dist
+        sqr(scalarField(faceSnapDist, ppFaces)),// sqr of attract dist
         hitSurface,
         hitInfo,
         hitRegion,
diff --git a/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
index ac458a96357..8f4a6762159 100644
--- a/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
@@ -356,6 +356,13 @@ void Foam::searchableSurfacesQueries::findNearest
 {
     // Find nearest. Return -1 or nearest point
 
+    if (samples.size() != nearestDistSqr.size())
+    {
+        FatalErrorInFunction << "Inconsistent sizes. samples:" << samples.size()
+            << " search-radius:" << nearestDistSqr.size()
+            << exit(FatalError);
+    }
+
     // Initialise
     nearestSurfaces.setSize(samples.size());
     nearestSurfaces = -1;
@@ -407,6 +414,14 @@ void Foam::searchableSurfacesQueries::findNearest
 {
     // Find nearest. Return -1 or nearest point
 
+    if (samples.size() != nearestDistSqr.size())
+    {
+        FatalErrorInFunction << "Inconsistent sizes. samples:" << samples.size()
+            << " search-radius:" << nearestDistSqr.size()
+            << exit(FatalError);
+    }
+
+
     if (regionIndices.empty())
     {
         findNearest
@@ -470,6 +485,15 @@ void Foam::searchableSurfacesQueries::findNearest
 {
     // Multi-surface findNearest
 
+
+    if (start.size() != distSqr.size())
+    {
+        FatalErrorInFunction << "Inconsistent sizes. samples:" << start.size()
+            << " search-radius:" << distSqr.size()
+            << exit(FatalError);
+    }
+
+
     vectorField normal;
     List<pointIndexHit> info;
 
-- 
GitLab