32 template <
class CloudType>
35 const label globalPatchI
40 if (patchIds_[patchI] == globalPatchI)
52 template<
class CloudType>
58 procData[Pstream::myProcNo()] = patchData_[patchI];
60 Pstream::gatherList(procData);
62 if (Pstream::master())
66 if (Pstream::parRun())
71 mesh_.time().
path()/
".."/
"postProcessing"/cloud::prefix/
72 this->owner().
name()/this->owner().time().timeName();
77 mesh_.time().
path()/
"postProcessing"/cloud::prefix/
78 this->owner().
name()/this->owner().time().timeName();
86 outputDir/patchNames_[patchI] +
".post",
88 IOstream::currentVersion,
89 mesh_.time().writeCompression()
93 globalData = ListListOps::combine<List<string> >
100 patchOutFile<<
"# Time " + parcelType::propHeader <<
nl;
104 patchOutFile<< globalData[i].c_str() <<
nl;
108 patchData_[patchI].clearStorage();
115 template<
class CloudType>
124 maxStoredParcels_(readLabel(this->coeffDict().lookup(
"maxStoredParcels"))),
125 patchNames_(this->coeffDict().lookup(
"patches")),
126 patchData_(patchNames_.size()),
127 patchIds_(patchNames_.size())
129 forAll(patchNames_, patchI)
131 label
id = mesh_.boundaryMesh().findPatchID(patchNames_[patchI]);
136 "PatchPostProcessing<CloudType>::PatchPostProcessing"
138 "const dictionary&, "
141 )<<
"Requested patch " << patchNames_[patchI] <<
" not found" <<
nl
142 <<
"Available patches are: " << mesh_.boundaryMesh().names() <<
nl
145 patchIds_[patchI] = id;
152 template<
class CloudType>
159 template<
class CloudType>
166 template<
class CloudType>
173 label localPatchI = applyToPatch(patchI);
174 if (localPatchI >= 0 && patchData_[localPatchI].size() < maxStoredParcels_)
177 data<< this->owner().time().timeName() <<
' ' <<
p;
178 patchData_[localPatchI].append(data.
str());