void Foam::vtkPV3Foam::convertMeshVolume ( vtkMultiBlockDataSet* output, int& blockNo ) { partInfo& selector = partInfoVolume_; selector.block(blockNo); // set output block label datasetNo = 0; // restart at dataset 0 const fvMesh& mesh = *meshPtr_; // resize for decomposed polyhedra regionPolyDecomp_.setSize(selector.size()); if (debug) { Info<< "<beg> Foam::vtkPV3Foam::convertMeshVolume" << endl; printMemory(); } // Convert the internalMesh // this looks like more than one part, but it isn't for (int partId = selector.start(); partId < selector.end(); ++partId) { const word partName = "internalMesh"; if (!partStatus_[partId]) { continue; } vtkUnstructuredGrid* vtkmesh = volumeVTKMesh ( mesh, regionPolyDecomp_[datasetNo] ); if (vtkmesh) { AddToBlock(output, vtkmesh, selector, datasetNo, partName); vtkmesh->Delete(); partDataset_[partId] = datasetNo++; } } // anything added? if (datasetNo) { ++blockNo; } if (debug) { Info<< "<end> Foam::vtkPV3Foam::convertMeshVolume" << endl; printMemory(); } }
void Foam::vtkPV3Foam::convertMeshCellSets ( vtkMultiBlockDataSet* output, int& blockNo ) { partInfo& selector = partInfoCellSets_; selector.block(blockNo); // set output block label datasetNo = 0; // restart at dataset 0 const fvMesh& mesh = *meshPtr_; // resize for decomposed polyhedra csetPolyDecomp_.setSize(selector.size()); if (debug) { Info<< "<beg> Foam::vtkPV3Foam::convertMeshCellSets" << endl; printMemory(); } for (int partId = selector.start(); partId < selector.end(); ++partId) { const word partName = getPartName(partId); if (!partStatus_[partId]) { continue; } if (debug) { Info<< "Creating VTK mesh for cellSet=" << partName << endl; } const cellSet cSet(mesh, partName); fvMeshSubset subsetMesh ( IOobject ( "set", mesh.time().constant(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh ); subsetMesh.setLargeCellSubset(cSet); vtkUnstructuredGrid* vtkmesh = volumeVTKMesh ( subsetMesh.subMesh(), csetPolyDecomp_[datasetNo] ); if (vtkmesh) { // superCells + addPointCellLabels must contain global cell ids inplaceRenumber ( subsetMesh.cellMap(), csetPolyDecomp_[datasetNo].superCells() ); inplaceRenumber ( subsetMesh.cellMap(), csetPolyDecomp_[datasetNo].addPointCellLabels() ); // copy pointMap as well, otherwise pointFields fail csetPolyDecomp_[datasetNo].pointMap() = subsetMesh.pointMap(); AddToBlock(output, vtkmesh, selector, datasetNo, partName); vtkmesh->Delete(); partDataset_[partId] = datasetNo++; } } // anything added? if (datasetNo) { ++blockNo; } if (debug) { Info<< "<end> Foam::vtkPV3Foam::convertMeshCellSets" << endl; printMemory(); } }
void Foam::vtkPV3Foam::convertMeshCellZones ( vtkMultiBlockDataSet* output, int& blockNo ) { arrayRange& range = arrayRangeCellZones_; range.block(blockNo); // set output block label datasetNo = 0; // restart at dataset 0 const fvMesh& mesh = *meshPtr_; // resize for decomposed polyhedra zonePolyDecomp_.setSize(range.size()); if (range.empty()) { return; } if (debug) { Info<< "<beg> Foam::vtkPV3Foam::convertMeshCellZones" << endl; printMemory(); } const cellZoneMesh& zMesh = mesh.cellZones(); for (int partId = range.start(); partId < range.end(); ++partId) { const word zoneName = getPartName(partId); const label zoneId = zMesh.findZoneID(zoneName); if (!partStatus_[partId] || zoneId < 0) { continue; } if (debug) { Info<< "Creating VTK mesh for cellZone[" << zoneId << "] " << zoneName << endl; } fvMeshSubset subsetter(mesh); subsetter.setLargeCellSubset(zMesh[zoneId]); vtkUnstructuredGrid* vtkmesh = volumeVTKMesh ( subsetter.subMesh(), zonePolyDecomp_[datasetNo] ); if (vtkmesh) { // superCells + addPointCellLabels must contain global cell ids inplaceRenumber ( subsetter.cellMap(), zonePolyDecomp_[datasetNo].superCells() ); inplaceRenumber ( subsetter.cellMap(), zonePolyDecomp_[datasetNo].addPointCellLabels() ); // copy pointMap as well, otherwise pointFields fail zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap(); AddToBlock(output, vtkmesh, range, datasetNo, zoneName); vtkmesh->Delete(); partDataset_[partId] = datasetNo++; } } // anything added? if (datasetNo) { ++blockNo; } if (debug) { Info<< "<end> Foam::vtkPV3Foam::convertMeshCellZones" << endl; printMemory(); } }