From 3aebb6b7c219a642b5348fe1ec04db80ec3592fb Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 25 Jul 2014 12:28:39 +0100 Subject: [PATCH] BUG: searchableCylinder: handling of normal outside cylinder --- .../searchableSurface/searchableCylinder.C | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/meshTools/searchableSurface/searchableCylinder.C b/src/meshTools/searchableSurface/searchableCylinder.C index fb2f7276f2..496cd04ab2 100644 --- a/src/meshTools/searchableSurface/searchableCylinder.C +++ b/src/meshTools/searchableSurface/searchableCylinder.C @@ -672,41 +672,41 @@ void Foam::searchableCylinder::getNormal { if ((magV-radius_) < mag(parallel)) { - // above endcap + // either above endcap (magV= radius_ || (radius_-magV) < parallel) { - // above endcap - normal[i] = -unitDir_; + normal[i] = v/magV; } else { - normal[i] = v/mag(v); + // closer to endcap + normal[i] = -unitDir_; } } else if (parallel <= magDir_) { // See if endcap closer or sidewall - if ((magDir_-parallel) <= mag(magV-radius_)) + if (magV >= radius_ || (radius_-magV) < (magDir_-parallel)) { - // above endcap - normal[i] = unitDir_; + normal[i] = v/magV; } else { - normal[i] = v/mag(v); + // closer to endcap + normal[i] = unitDir_; } } - else // beyong cylinder + else // beyond cylinder { if ((magV-radius_) < (parallel-magDir_)) { @@ -715,7 +715,7 @@ void Foam::searchableCylinder::getNormal } else { - normal[i] = v/mag(v); + normal[i] = v/magV; } } }