From 3318a2972fb859306eb2d0b694fbcab5945fafc6 Mon Sep 17 00:00:00 2001 From: mattijs Date: Thu, 2 May 2013 17:17:21 +0100 Subject: [PATCH] BUG: distributedTriSurfaceMesh: non-parallel running clip against local proc --- .../distributedTriSurfaceMesh.C | 240 +++++++++--------- 1 file changed, 127 insertions(+), 113 deletions(-) diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C index 2dab63202b..80308fac5e 100644 --- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C +++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C @@ -365,9 +365,6 @@ void Foam::distributedTriSurfaceMesh::findLine { const indexedOctree& octree = tree(); - // Important:force synchronised construction of indexing - const globalIndex& triIndexer = globalTris(); - // Initialise info.setSize(start.size()); forAll(info, i) @@ -375,15 +372,9 @@ void Foam::distributedTriSurfaceMesh::findLine info[i].setMiss(); } - - // Do any local queries - // ~~~~~~~~~~~~~~~~~~~~ - - label nLocal = 0; - - forAll(start, i) + if (!Pstream::parRun()) { - if (isLocal(procBb_[Pstream::myProcNo()], start[i], end[i])) + forAll(start, i) { if (nearestIntersection) { @@ -393,127 +384,150 @@ void Foam::distributedTriSurfaceMesh::findLine { info[i] = octree.findLineAny(start[i], end[i]); } - - if (info[i].hit()) - { - info[i].setIndex(triIndexer.toGlobal(info[i].index())); - } - nLocal++; } } + else + { + // Important:force synchronised construction of indexing + const globalIndex& triIndexer = globalTris(); - if - ( - Pstream::parRun() - && ( + // Do any local queries + // ~~~~~~~~~~~~~~~~~~~~ + + label nLocal = 0; + + forAll(start, i) + { + if (isLocal(procBb_[Pstream::myProcNo()], start[i], end[i])) + { + if (nearestIntersection) + { + info[i] = octree.findLine(start[i], end[i]); + } + else + { + info[i] = octree.findLineAny(start[i], end[i]); + } + + if (info[i].hit()) + { + info[i].setIndex(triIndexer.toGlobal(info[i].index())); + } + nLocal++; + } + } + + + if + ( returnReduce(nLocal, sumOp