From ccd2321a9093ff0b216c825c7960bd332e8e8dc8 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Fri, 20 May 2011 18:17:02 +0100 Subject: [PATCH] BUG: Corrected parallel behaviour of cloud FacePostProcessing model --- .../FacePostProcessing/FacePostProcessing.C | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C index b3cdad013e6..024f4396661 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C @@ -66,10 +66,9 @@ void Foam::FacePostProcessing<CloudType>::write() const label procI = Pstream::myProcNo(); scalarListList allProcMass(Pstream::nProcs()); - allProcMass[procI].setSize(massTotal_.size()); allProcMass[procI] = massTotal_; Pstream::gatherList(allProcMass); - scalarList allMass + scalarField allMass ( ListListOps::combine<scalarList> ( @@ -78,10 +77,9 @@ void Foam::FacePostProcessing<CloudType>::write() ); scalarListList allProcMassFlux(Pstream::nProcs()); - allProcMassFlux[procI].setSize(massFlux_.size()); allProcMassFlux[procI] = massFlux_; Pstream::gatherList(allProcMassFlux); - scalarList allMassFlux + scalarField allMassFlux ( ListListOps::combine<scalarList> ( @@ -109,16 +107,8 @@ void Foam::FacePostProcessing<CloudType>::write() pointField uniquePoints(mesh.points(), uniqueMeshPointLabels); List<pointField> allProcPoints(Pstream::nProcs()); - allProcPoints[procI].setSize(uniquePoints.size()); allProcPoints[procI] = uniquePoints; Pstream::gatherList(allProcPoints); - pointField allPoints - ( - ListListOps::combine<pointField> - ( - allProcPoints, accessOp<pointField>() - ) - ); faceList faces(fZone_().localFaces()); forAll(faces, i) @@ -126,20 +116,27 @@ void Foam::FacePostProcessing<CloudType>::write() inplaceRenumber(pointToGlobal, faces[i]); } List<faceList> allProcFaces(Pstream::nProcs()); - allProcFaces[procI].setSize(faces.size()); allProcFaces[procI] = faces; Pstream::gatherList(allProcFaces); - faceList allFaces - ( - ListListOps::combine<faceList> - ( - allProcFaces, accessOp<faceList>() - ) - ); - if (Pstream::master()) { + pointField allPoints + ( + ListListOps::combine<pointField> + ( + allProcPoints, accessOp<pointField>() + ) + ); + + faceList allFaces + ( + ListListOps::combine<faceList> + ( + allProcFaces, accessOp<faceList>() + ) + ); + fileName outputDir = mesh.time().path(); if (Pstream::parRun()) @@ -165,7 +162,7 @@ void Foam::FacePostProcessing<CloudType>::write() allPoints, allFaces, "massTotal", - massTotal_, + allMass, false ); writer->write @@ -175,7 +172,7 @@ void Foam::FacePostProcessing<CloudType>::write() allPoints, allFaces, "massFlux", - massFlux_, + allMassFlux, false ); } -- GitLab