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