From 5688340a053d08a3ede363b84a10ef702d87bab3 Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Tue, 7 Nov 2017 09:12:59 +0000 Subject: [PATCH] ENH: globalIndexAndTransform: Don't generate transforms from coincident-full-match patches Another exception has been added to globalIndexAndTransform to prevent transformations being generated from coupled patch pairs marked with coincident-full-match transformations. Foamy generates such patches, and the faces on them at intermediate stages of meshing can be degenerate, making the calculation of transformations unreliable. This change enforces the definition that coincident-full-match patch pairs are not transformed. --- .../globalIndexAndTransform.C | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C index d5e48bcc51..67a285f3d7 100644 --- a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C +++ b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -139,15 +139,19 @@ void Foam::globalIndexAndTransform::determineTransforms() // Note: special check for unordered cyclics. These are in fact // transform bcs and should probably be split off. + // Note: We don't want to be finding transforms for patches marked as + // coincident full match. These should have no transform by definition. if ( isA(pp) && !( isA(pp) - && ( - refCast(pp).transform() - == cyclicPolyPatch::NOORDERING - ) + && refCast(pp).transform() + == cyclicPolyPatch::NOORDERING + ) + && !( + refCast(pp).transform() + == coupledPolyPatch::COINCIDENTFULLMATCH ) ) { @@ -319,15 +323,19 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign() // Note: special check for unordered cyclics. These are in fact // transform bcs and should probably be split off. + // Note: We don't want to be finding transforms for patches marked as + // coincident full match. These should have no transform by definition. if ( isA(pp) && !( isA(pp) - && ( - refCast(pp).transform() - == cyclicPolyPatch::NOORDERING - ) + && refCast(pp).transform() + == cyclicPolyPatch::NOORDERING + ) + && !( + refCast(pp).transform() + == coupledPolyPatch::COINCIDENTFULLMATCH ) ) {