35 #include "vtkCellData.h"
36 #include "vtkMultiPieceDataSet.h"
37 #include "vtkPointData.h"
44 vtkMultiPieceDataSet* multiPiece,
50 if (!multiPiece || !fldptr)
61 if (!needsCollective())
65 for (
int proci=0; proci < Pstream::myProcNo(); ++proci)
77 ? Foam::vtk::Tools::convertFieldToVTK<Type>
80 pf.patchInternalField()()
82 : Foam::vtk::Tools::convertFieldToVTK<Type>
89 auto piece = multiPiece->GetPiece(pieceId);
91 if (piece->GetNumberOfCells() == piece->GetNumberOfPoints())
94 piece->GetPointData()->AddArray(vtkfield);
98 piece->GetCellData()->AddArray(vtkfield);
104 else if (Pstream::master())
116 ? Foam::vtk::Tools::convertFieldToVTK<Type>
119 pf.patchInternalField()()
121 : Foam::vtk::Tools::convertFieldToVTK<Type>
128 auto piece = multiPiece->GetPiece(pieceId);
130 if (piece->GetNumberOfCells() == piece->GetNumberOfPoints())
133 piece->GetPointData()->AddArray(vtkfield);
137 piece->GetCellData()->AddArray(vtkfield);
148 int slave=Pstream::firstSlave();
149 slave<=Pstream::lastSlave();
160 IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
162 for (
label recvi=0; recvi < nSlavePatches; ++recvi)
168 auto vtkfield = Foam::vtk::Tools::convertFieldToVTK<Type>
174 auto piece = multiPiece->GetPiece(pieceId);
176 if (piece->GetNumberOfCells() == piece->GetNumberOfPoints())
179 piece->GetPointData()->AddArray(vtkfield);
183 piece->GetCellData()->AddArray(vtkfield);
195 if (slavePatchIds.size())
199 Pstream::commsTypes::scheduled,
209 toMaster << pf.patchInternalField()();