diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C index 2521f7b1d2..1204ac5976 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C @@ -110,30 +110,40 @@ void writeAllData { if (nPrims) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(vf, prims, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { ensightFile << key << nl; + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeData(map(vf, prims, cmpt), ensightFile); for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(vf, prims, cmpt); - } - } } } @@ -150,30 +160,40 @@ void writeAllDataBinary { if (nPrims) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(vf, prims, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { writeEnsDataBinary(key,ensightFile); + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeEnsDataBinary(map(vf, prims, cmpt), ensightFile); for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(vf, prims, cmpt); - } - } } } @@ -190,31 +210,40 @@ void writeAllFaceData { if (nPrims) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(pf, prims, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { ensightFile << key << nl; + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeData(map(pf, prims, cmpt), ensightFile); for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(pf, prims, cmpt); - } - } } } @@ -231,31 +260,40 @@ void writeAllFaceDataBinary { if (nPrims) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(pf, prims, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { writeEnsDataBinary(key,ensightFile); + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeEnsDataBinary(map(pf, prims, cmpt), ensightFile); for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(pf, prims, cmpt); - } - } } } @@ -554,10 +592,29 @@ void ensightFieldAscii if (meshCellSets.nHexesWedges) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(vf, hexes, wedges, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { ensightFile << "hexa8" << nl; + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeData @@ -568,20 +625,11 @@ void ensightFieldAscii for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(vf, hexes, wedges, cmpt); - } - } } writeAllData("penta6", vf, prisms, meshCellSets.nPrisms, ensightFile); @@ -695,10 +743,29 @@ void ensightFieldBinary if (meshCellSets.nHexesWedges) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + for (direction cmpt=0; cmpt::nComponents; cmpt++) + { + toMaster<< map(vf, hexes, wedges, cmpt); + } + } + + pBufs.finishedSends(); + if (Pstream::master()) { writeEnsDataBinary("hexa8",ensightFile); + PtrList fromSlaves(Pstream::nProcs()); + for (int slave=1; slave::nComponents; cmpt++) { writeEnsDataBinary @@ -709,20 +776,11 @@ void ensightFieldBinary for (int slave=1; slave::nComponents; cmpt++) - { - OPstream toMaster(Pstream::scheduled, Pstream::masterNo()); - toMaster<< map(vf, hexes, wedges, cmpt); - } - } } writeAllDataBinary diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C index 19920b008a..4298ac43d1 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C @@ -467,104 +467,125 @@ void Foam::ensightMesh::writeAllPolys } // Number of faces for each poly cell - if (Pstream::master()) { - // Master - writePolysNFaces - ( - meshCellSets_.polys, - cellFaces, - ensightGeometryFile - ); - // Slaves - for (int slave=1; slave(patchFaces, prims); + } + + pBufs.finishedSends(); + if (Pstream::master()) { ensightGeometryFile << key << nl << setw(10) << nPrims << nl; @@ -893,17 +949,12 @@ void Foam::ensightMesh::writeAllFacePrims for (int slave=1; slave(patchFaces, prims); - } } } @@ -948,53 +999,67 @@ void Foam::ensightMesh::writeAllNSided } // Number of points for each face - if (Pstream::master()) { - writeNSidedNPointsPerFace - ( - UIndirectList(patchFaces, prims)(), - ensightGeometryFile - ); + PstreamBuffers pBufs(Pstream::nonBlocking); - for (int slave=1; slave(patchFaces, prims); + } + pBufs.finishedSends(); + + if (Pstream::master()) + { writeNSidedNPointsPerFace ( - patchFaces, + UIndirectList(patchFaces, prims)(), ensightGeometryFile ); + + for (int slave=1; slave(patchFaces, prims); - } // List of points id for each face - if (Pstream::master()) { - writeNSidedPoints - ( - UIndirectList(patchFaces, prims)(), - ensightGeometryFile - ); + PstreamBuffers pBufs(Pstream::nonBlocking); - for (int slave=1; slave(patchFaces, prims); + } + + pBufs.finishedSends(); + + if (Pstream::master()) + { + writeNSidedPoints + ( + UIndirectList(patchFaces, prims)(), + ensightGeometryFile + ); + + for (int slave=1; slave(patchFaces, prims); } } } @@ -1040,53 +1105,71 @@ void Foam::ensightMesh::writeAllNSidedBinary } // Number of points for each face - if (Pstream::master()) { - writeNSidedNPointsPerFaceBinary - ( - UIndirectList(patchFaces, prims)(), - ensightGeometryFile - ); + PstreamBuffers pBufs(Pstream::nonBlocking); - for (int slave=1; slave(patchFaces, prims); + } + pBufs.finishedSends(); + + if (Pstream::master()) + { writeNSidedNPointsPerFaceBinary ( - patchFaces, + UIndirectList(patchFaces, prims)(), ensightGeometryFile ); + + for (int slave=1; slave(patchFaces, prims); - } // List of points id for each face - if (Pstream::master()) { - writeNSidedPointsBinary - ( - UIndirectList(patchFaces, prims)(), - ensightGeometryFile - ); + PstreamBuffers pBufs(Pstream::nonBlocking); - for (int slave=1; slave(patchFaces, prims); + } + + pBufs.finishedSends(); + + if (Pstream::master()) + { + writeNSidedPointsBinary + ( + UIndirectList(patchFaces, prims)(), + ensightGeometryFile + ); + + for (int slave=1; slave(patchFaces, prims); } } } @@ -1103,6 +1186,16 @@ void Foam::ensightMesh::writeAllFacePrimsBinary { if (nPrims) { + PstreamBuffers pBufs(Pstream::nonBlocking); + + if (!Pstream::master()) + { + UOPstream toMaster(Pstream::masterNo(), pBufs); + toMaster<< UIndirectList(patchFaces, prims); + } + + pBufs.finishedSends(); + if (Pstream::master()) { writeEnsDataBinary(key,ensightGeometryFile); @@ -1116,17 +1209,12 @@ void Foam::ensightMesh::writeAllFacePrimsBinary for (int slave=1; slave(patchFaces, prims); - } } } @@ -1245,34 +1333,47 @@ void Foam::ensightMesh::writeAscii { label nPoints = globalPoints.size(); - if (Pstream::master()) { - ensightGeometryFile - << "part" << nl - << setw(10) << 1 << nl - << "internalMesh" << nl - << "coordinates" << nl - << setw(10) << nPoints - << endl; + PstreamBuffers pBufs(Pstream::nonBlocking); - for (direction d=0; d fromSlaves(Pstream::nProcs()); + for (int slave=1; slave fromSlaves(Pstream::nProcs()); + for (int slave=1; slave fromSlaves(Pstream::nProcs()); + for (int slave=1; slave fromSlaves(Pstream::nProcs()); for (int slave=1; slave