diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C index c3262e6b9c..4796f4b4f1 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C @@ -428,7 +428,43 @@ void Foam::ensightMesh::writePrimsBinary } -void Foam::ensightMesh::writePolys +void Foam::ensightMesh::writePolysNFaces +( + const labelList& polys, + const cellList& cellFaces, + OFstream& ensightGeometryFile +) const +{ + forAll(polys, i) + { + ensightGeometryFile + << setw(10) << cellFaces[polys[i]].size() << nl; + } +} + + +void Foam::ensightMesh::writePolysNPointsPerFace +( + const labelList& polys, + const cellList& cellFaces, + const faceList& faces, + OFstream& ensightGeometryFile +) const +{ + forAll(polys, i) + { + const labelList& cf = cellFaces[polys[i]]; + + forAll(cf, faceI) + { + ensightGeometryFile + << setw(10) << faces[cf[faceI]].size() << nl; + } + } +} + + +void Foam::ensightMesh::writePolysPoints ( const labelList& polys, const cellList& cellFaces, @@ -437,50 +473,190 @@ void Foam::ensightMesh::writePolys OFstream& ensightGeometryFile ) const { - if (polys.size()) + label po = pointOffset + 1; + + forAll(polys, i) { - ensightGeometryFile - << "nfaced" << nl << setw(10) << polys.size() << nl; + const labelList& cf = cellFaces[polys[i]]; - label po = pointOffset + 1; - - forAll(polys, i) + forAll(cf, faceI) { - ensightGeometryFile - << setw(10) << cellFaces[polys[i]].size() << nl; - } + const face& f = faces[cf[faceI]]; - forAll(polys, i) - { - const labelList& cf = cellFaces[polys[i]]; - - forAll(cf, faceI) + forAll(f, pointI) { - ensightGeometryFile - << setw(10) << faces[cf[faceI]].size() << nl; - } - } - - forAll(polys, i) - { - const labelList& cf = cellFaces[polys[i]]; - - forAll(cf, faceI) - { - const face& f = faces[cf[faceI]]; - - forAll(f, pointI) - { - ensightGeometryFile << setw(10) << f[pointI] + po; - } - ensightGeometryFile << nl; + ensightGeometryFile << setw(10) << f[pointI] + po; } + ensightGeometryFile << nl; } } } -void Foam::ensightMesh::writePolysBinary +void Foam::ensightMesh::writeAllPolys +( + const labelList& pointOffsets, + OFstream& ensightGeometryFile +) const +{ + if (meshCellSets_.nPolys) + { + const cellList& cellFaces = mesh_.cells(); + const faceList& faces = mesh_.faces(); + + if (Pstream::master()) + { + ensightGeometryFile + << "nfaced" << nl << setw(10) << meshCellSets_.nPolys << nl; + } + + // Number of faces for each poly cell + if (Pstream::master()) + { + // Master + writePolysNFaces + ( + meshCellSets_.polys, + cellFaces, + ensightGeometryFile + ); + // Slaves + for (int slave=1; slave