From d0e866f2ca5a93ea29ff35b67d00a009813a9792 Mon Sep 17 00:00:00 2001 From: mattijs Date: Sat, 21 Nov 2009 10:53:36 +0000 Subject: [PATCH] synchronise flipping on coupled boundaries --- .../meshRefinement/meshRefinementBaffles.C | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index 88f806b5dd..307cb743f8 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -2411,6 +2411,9 @@ Foam::autoPtr Foam::meshRefinement::zonify } syncTools::swapBoundaryFaceList(mesh_, neiCellZone, false); + // Get per face whether is it master (of a coupled set of faces) + PackedBoolList isMasterFace(syncTools::getMasterFaces(mesh_)); + // Set owner as no-flip forAll(patches, patchI) { @@ -2428,14 +2431,27 @@ Foam::autoPtr Foam::meshRefinement::zonify label neiZone = neiCellZone[faceI-mesh_.nInternalFaces()]; bool flip; - if (ownZone == max(ownZone, neiZone)) + + label maxZone = max(ownZone, neiZone); + + if (maxZone == -1) { flip = false; } - else + else if (ownZone == neiZone) + { + // Can only happen for coupled boundaries. Keep master + // face unflipped. + flip = !isMasterFace[faceI]; + } + else if (neiZone == maxZone) { flip = true; } + else + { + flip = false; + } meshMod.setAction (