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; } } }