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