From 173cab2df47648372d10926b925f2cfc54fe1eef Mon Sep 17 00:00:00 2001 From: laurence Date: Fri, 15 Mar 2013 12:47:39 +0000 Subject: [PATCH] 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 --- .../polyPatches/basic/coupled/coupledPolyPatch.C | 12 ++++++++++-- .../constraint/processor/processorPolyPatch.C | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C index 2ac3b52903..ef6625e0d3 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C @@ -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 || ( diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C index 5da47a6ce4..37e2fb4d71 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C @@ -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.