33 #include "vtkPV3FoamReader.h" 37 #include "vtkDataArraySelection.h" 38 #include "vtkMultiBlockDataSet.h" 39 #include "vtkPolyData.h" 40 #include "vtkUnstructuredGrid.h" 44 void Foam::vtkPV3Foam::convertMeshVolume
46 vtkMultiBlockDataSet* output,
50 arrayRange& range = arrayRangeVolume_;
53 const fvMesh& mesh = *meshPtr_;
56 regionPolyDecomp_.
setSize(range.size());
60 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshVolume" <<
endl;
66 for (
int partId = range.start(); partId < range.end(); ++partId)
68 const word partName =
"internalMesh";
70 if (!partStatus_[partId])
75 vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
78 regionPolyDecomp_[datasetNo]
83 AddToBlock(output, vtkmesh, range, datasetNo, partName);
86 partDataset_[partId] = datasetNo++;
98 Info<<
"<end> Foam::vtkPV3Foam::convertMeshVolume" <<
endl;
104 void Foam::vtkPV3Foam::convertMeshLagrangian
106 vtkMultiBlockDataSet* output,
110 arrayRange& range = arrayRangeLagrangian_;
111 range.block(blockNo);
113 const fvMesh& mesh = *meshPtr_;
117 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshLagrangian" <<
endl;
121 for (
int partId = range.start(); partId < range.end(); ++partId)
123 const word cloudName = getPartName(partId);
125 if (!partStatus_[partId])
130 vtkPolyData* vtkmesh = lagrangianVTKMesh(mesh, cloudName);
134 AddToBlock(output, vtkmesh, range, datasetNo, cloudName);
137 partDataset_[partId] = datasetNo++;
149 Info<<
"<end> Foam::vtkPV3Foam::convertMeshLagrangian" <<
endl;
155 void Foam::vtkPV3Foam::convertMeshPatches
157 vtkMultiBlockDataSet* output,
161 arrayRange& range = arrayRangePatches_;
162 range.block(blockNo);
164 const fvMesh& mesh = *meshPtr_;
169 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshPatches" <<
endl;
173 for (
int partId = range.start(); partId < range.end(); ++partId)
175 if (!partStatus_[partId])
180 const word patchName = getPartName(partId);
184 patches.patchSet(List<wordRe>(1, wordRe(patchName)))
189 Info<<
"Creating VTK mesh for patches [" << patchIds <<
"] " 190 << patchName <<
endl;
193 vtkPolyData* vtkmesh = NULL;
194 if (patchIds.size() == 1)
196 vtkmesh = patchVTKMesh(patchName, patches[patchIds.begin().key()]);
204 sz += patches[iter.key()].size();
210 const polyPatch& pp = patches[iter.key()];
213 meshFaceLabels[sz++] = pp.start()+i;
216 UIndirectList<face> fcs(mesh.faces(), meshFaceLabels);
219 vtkmesh = patchVTKMesh(patchName, pp);
225 AddToBlock(output, vtkmesh, range, datasetNo, patchName);
228 partDataset_[partId] = datasetNo++;
240 Info<<
"<end> Foam::vtkPV3Foam::convertMeshPatches" <<
endl;
246 void Foam::vtkPV3Foam::convertMeshCellZones
248 vtkMultiBlockDataSet* output,
252 arrayRange& range = arrayRangeCellZones_;
253 range.block(blockNo);
255 const fvMesh& mesh = *meshPtr_;
258 zonePolyDecomp_.
setSize(range.size());
267 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshCellZones" <<
endl;
272 for (
int partId = range.start(); partId < range.end(); ++partId)
274 const word zoneName = getPartName(partId);
275 const label zoneId = zMesh.findZoneID(zoneName);
277 if (!partStatus_[partId] || zoneId < 0)
284 Info<<
"Creating VTK mesh for cellZone[" << zoneId <<
"] " 288 fvMeshSubset subsetter(mesh);
289 subsetter.setLargeCellSubset(zMesh[zoneId]);
291 vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
294 zonePolyDecomp_[datasetNo]
303 zonePolyDecomp_[datasetNo].superCells()
308 zonePolyDecomp_[datasetNo].addPointCellLabels()
312 zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
314 AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
317 partDataset_[partId] = datasetNo++;
329 Info<<
"<end> Foam::vtkPV3Foam::convertMeshCellZones" <<
endl;
335 void Foam::vtkPV3Foam::convertMeshCellSets
337 vtkMultiBlockDataSet* output,
341 arrayRange& range = arrayRangeCellSets_;
342 range.block(blockNo);
344 const fvMesh& mesh = *meshPtr_;
347 csetPolyDecomp_.
setSize(range.size());
351 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshCellSets" <<
endl;
355 for (
int partId = range.start(); partId < range.end(); ++partId)
357 const word partName = getPartName(partId);
359 if (!partStatus_[partId])
366 Info<<
"Creating VTK mesh for cellSet=" << partName <<
endl;
369 const cellSet cSet(mesh, partName);
370 fvMeshSubset subsetter(mesh);
371 subsetter.setLargeCellSubset(cSet);
373 vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
376 csetPolyDecomp_[datasetNo]
385 csetPolyDecomp_[datasetNo].superCells()
390 csetPolyDecomp_[datasetNo].addPointCellLabels()
394 csetPolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
396 AddToBlock(output, vtkmesh, range, datasetNo, partName);
399 partDataset_[partId] = datasetNo++;
411 Info<<
"<end> Foam::vtkPV3Foam::convertMeshCellSets" <<
endl;
417 void Foam::vtkPV3Foam::convertMeshFaceZones
419 vtkMultiBlockDataSet* output,
423 arrayRange& range = arrayRangeFaceZones_;
424 range.block(blockNo);
426 const fvMesh& mesh = *meshPtr_;
435 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshFaceZones" <<
endl;
440 for (
int partId = range.start(); partId < range.end(); ++partId)
442 const word zoneName = getPartName(partId);
443 const label zoneId = zMesh.findZoneID(zoneName);
445 if (!partStatus_[partId] || zoneId < 0)
452 Info<<
"Creating VTKmesh for faceZone[" << zoneId <<
"] " 456 vtkPolyData* vtkmesh = patchVTKMesh(zoneName, zMesh[zoneId]());
460 AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
463 partDataset_[partId] = datasetNo++;
475 Info<<
"<end> Foam::vtkPV3Foam::convertMeshFaceZones" <<
endl;
481 void Foam::vtkPV3Foam::convertMeshFaceSets
483 vtkMultiBlockDataSet* output,
487 arrayRange& range = arrayRangeFaceSets_;
488 range.block(blockNo);
490 const fvMesh& mesh = *meshPtr_;
494 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshFaceSets" <<
endl;
498 for (
int partId = range.start(); partId < range.end(); ++partId)
500 const word partName = getPartName(partId);
502 if (!partStatus_[partId])
509 Info<<
"Creating VTK mesh for faceSet=" << partName <<
endl;
512 const faceSet fSet(mesh, partName);
514 vtkPolyData* vtkmesh = faceSetVTKMesh(mesh, fSet);
517 AddToBlock(output, vtkmesh, range, datasetNo, partName);
520 partDataset_[partId] = datasetNo++;
532 Info<<
"<end> Foam::vtkPV3Foam::convertMeshFaceSets" <<
endl;
538 void Foam::vtkPV3Foam::convertMeshPointZones
540 vtkMultiBlockDataSet* output,
544 arrayRange& range = arrayRangePointZones_;
545 range.block(blockNo);
547 const fvMesh& mesh = *meshPtr_;
551 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshPointZones" <<
endl;
558 for (
int partId = range.start(); partId < range.end(); ++partId)
560 word zoneName = getPartName(partId);
561 label zoneId = zMesh.findZoneID(zoneName);
563 if (!partStatus_[partId] || zoneId < 0)
568 vtkPolyData* vtkmesh = pointZoneVTKMesh(mesh, zMesh[zoneId]);
571 AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
574 partDataset_[partId] = datasetNo++;
587 Info<<
"<end> Foam::vtkPV3Foam::convertMeshPointZones" <<
endl;
594 void Foam::vtkPV3Foam::convertMeshPointSets
596 vtkMultiBlockDataSet* output,
600 arrayRange& range = arrayRangePointSets_;
601 range.block(blockNo);
603 const fvMesh& mesh = *meshPtr_;
607 Info<<
"<beg> Foam::vtkPV3Foam::convertMeshPointSets" <<
endl;
611 for (
int partId = range.start(); partId < range.end(); ++partId)
613 word partName = getPartName(partId);
615 if (!partStatus_[partId])
622 Info<<
"Creating VTK mesh for pointSet=" << partName <<
endl;
625 const pointSet pSet(mesh, partName);
627 vtkPolyData* vtkmesh = pointSetVTKMesh(mesh, pSet);
630 AddToBlock(output, vtkmesh, range, datasetNo, partName);
633 partDataset_[partId] = datasetNo++;
645 Info<<
"<end> Foam::vtkPV3Foam::convertMeshPointSets" <<
endl;
ZoneMesh< faceZone, polyMesh > faceZoneMesh
A ZoneMesh with the type faceZone.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void inplaceRenumber(const labelUList &oldToNew, ListType &)
Inplace renumber the values of a list.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static void printMemory()
Simple memory used debugging information.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
HashSet< label, Hash< label > > labelHashSet
A HashSet with label keys.
List< label > labelList
A List of labels.
ZoneMesh< pointZone, polyMesh > pointZoneMesh
A ZoneMesh with the type pointZone.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
void setSize(const label)
Reset size of List.
PrimitivePatch< face, UIndirectList, const pointField & > uindirectPrimitivePatch
Foam::uindirectPrimitivePatch.
ZoneMesh< cellZone, polyMesh > cellZoneMesh
A ZoneMesh with the type cellZone.