diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C index c5d632ec287e97e6b423da70b8ef32c350ec631f..f79e874c79e11767551d9d3b209188874953e60b 100644 --- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C +++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C @@ -1220,7 +1220,17 @@ void Foam::globalPoints::calculateSharedPoints // Do one exchange iteration to get neighbour points. { - PstreamBuffers pBufs(Pstream::defaultCommsType); + // Note: to use 'scheduled' would have to intersperse send and receive. + // So for now just use nonBlocking. Also globalPoints itself gets + // constructed by mesh.globalData().patchSchedule() so creates a loop. + PstreamBuffers pBufs + ( + ( + Pstream::defaultCommsType == Pstream::scheduled + ? Pstream::nonBlocking + : Pstream::defaultCommsType + ) + ); sendPatchPoints ( mergeSeparated, @@ -1251,7 +1261,14 @@ void Foam::globalPoints::calculateSharedPoints do { - PstreamBuffers pBufs(Pstream::defaultCommsType); + PstreamBuffers pBufs + ( + ( + Pstream::defaultCommsType == Pstream::scheduled + ? Pstream::nonBlocking + : Pstream::defaultCommsType + ) + ); sendPatchPoints ( mergeSeparated, @@ -1400,7 +1417,15 @@ void Foam::globalPoints::calculateSharedPoints Pout<< "Determined " << changedIndices.size() << " shared points." << " Exchanging them" << endl; } - PstreamBuffers pBufs(Pstream::defaultCommsType); + PstreamBuffers pBufs + ( + ( + Pstream::defaultCommsType == Pstream::scheduled + ? Pstream::nonBlocking + : Pstream::defaultCommsType + ) + ); + sendSharedPoints(mergeSeparated, pBufs, changedIndices); pBufs.finishedSends(); receiveSharedPoints