From 2fd5224c90eb5328392cb499d8a2d39326de9f82 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Wed, 1 Sep 2010 10:04:16 +0100 Subject: [PATCH] ENH: pointMVCWeight : handle zero field. (div by zero) --- .../interpolationPoint/interpolationPoint.H | 2 +- .../interpolation/interpolationPoint/pointMVCWeight.C | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.H b/src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.H index 49ee13e308e..a3dc106eb02 100644 --- a/src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.H +++ b/src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.H @@ -60,7 +60,7 @@ protected: public: //- Runtime type information - TypeName("cellPoint"); + TypeName("point"); // Constructors diff --git a/src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.C b/src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.C index 2945198e46d..42e201c6ab6 100644 --- a/src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.C +++ b/src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.C @@ -119,7 +119,15 @@ void Foam::pointMVCWeight::calcWeights //Pout<< " uj:" << u[j] << " ujPlus1:" << u[jPlus1] << endl; vector temp = u[j] ^ u[jPlus1]; - temp /= mag(temp); + + scalar magTemp = mag(temp); + + if (magTemp < VSMALL) + { + continue; + } + + temp /= magTemp; //Pout<< " uj:" << u[j] << " ujPlus1:" << u[jPlus1] // << " temp:" << temp << endl; -- GitLab