ENH: cvMesh tolerance issues fixed.

+ Change && to ||, as if a face is small the area calculation can
  differ on opposing processors

+ Do not calculate transform with NOORDERING
This commit is contained in:
laurence
2013-03-15 12:47:39 +00:00
parent f33b977421
commit 173cab2df4
2 changed files with 12 additions and 4 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -344,7 +344,15 @@ void Foam::coupledPolyPatch::calcTransformTensors
Pout<< " error:" << error << endl;
}
if
if (transform == NOORDERING)
{
forwardT_.setSize(0);
reverseT_.setSize(0);
separation_.setSize(0);
collocated_ = boolList(1, true);
}
else if
(
transform == ROTATIONAL
|| (

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -193,7 +193,7 @@ void Foam::processorPolyPatch::calcGeometry(PstreamBuffers& pBufs)
// For small face area calculation the results of the area
// calculation have been found to only be accurate to ~1e-20
if (magSf < SMALL && nbrMagSf < SMALL)
if (magSf < SMALL || nbrMagSf < SMALL)
{
// Undetermined normal. Use dummy normal to force separation
// check.