39 void Foam::vtk::internalMeshWriter::beginPiece()
79 void Foam::vtk::internalMeshWriter::writePoints()
90 vtuCells_.addPointCellLabels()
100 vtuCells_.addPointCellLabels()
109 void Foam::vtk::internalMeshWriter::writeCellsLegacy(
const label pointOffset)
111 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
112 const labelList& vertLabels = vtuCells_.vertLabels();
115 label nVerts = vertLabels.size();
119 reduce(nCells, sumOp<label>());
120 reduce(nVerts, sumOp<label>());
123 if (nCells != numberOfCells_)
126 <<
"Expecting " << numberOfCells_
127 <<
" cells, but found " << nCells
137 <<
"CELLS " << nCells <<
' ' << nVerts <<
nl;
169 <<
"CELL_TYPES " << nCells <<
nl;
189 void Foam::vtk::internalMeshWriter::writeCellsConnectivity
191 const label pointOffset
198 const labelList& vertLabels = vtuCells_.vertLabels();
199 label nVerts = vertLabels.size();
203 reduce(nVerts, sumOp<label>());
208 const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
211 format().writeSize(payLoad);
243 const labelList& vertOffsets = vtuCells_.vertOffsets();
244 label nOffs = vertOffsets.size();
248 reduce(nOffs, sumOp<label>());
253 const uint64_t payLoad =
254 vtk::sizeofData<label>(nOffs);
257 format().writeSize(payLoad);
263 const globalIndex procOffset
265 vertOffsets.empty() ? 0 : vertOffsets.last()
287 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
292 reduce(nCells, sumOp<label>());
295 if (nCells != numberOfCells_)
298 <<
"Expecting " << numberOfCells_
299 <<
" cells, but found " << nCells
305 const uint64_t payLoad =
306 vtk::sizeofData<uint8_t>(nCells);
309 format().writeSize(payLoad);
320 checkFormatterValidity();
335 void Foam::vtk::internalMeshWriter::writeCellsFaces
337 const label pointOffset
340 label nFaceLabels = vtuCells_.faceLabels().size();
344 reduce(nFaceLabels, sumOp<label>());
358 const labelList& faceLabels = vtuCells_.faceLabels();
365 const uint64_t payLoad =
366 vtk::sizeofData<label>(nFaceLabels);
369 format().writeSize(payLoad);
409 const labelList& faceOffsets = vtuCells_.faceOffsets();
410 const label nLocalCells = vtuCells_.cellTypes().size();
412 label nCells = nLocalCells;
416 reduce(nCells, sumOp<label>());
421 const uint64_t payLoad =
422 vtk::sizeofData<label>(nCells);
425 format().writeSize(payLoad);
431 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
432 const label nLocalCells =
cellTypes.size();
434 const globalIndex procOffset(faceLabels.size());
438 if (faceOffsets.size())
440 faceOffsetsRenumber =
444 procOffset.localStart()
449 faceOffsetsRenumber.resize(nLocalCells, -1);
471 Foam::vtk::internalMeshWriter::internalMeshWriter
478 vtk::fileWriter(vtk::
fileTag::UNSTRUCTURED_GRID, opts),
490 Foam::vtk::internalMeshWriter::internalMeshWriter
500 open(file, parallel);
504 Foam::vtk::internalMeshWriter::internalMeshWriter
515 open(file, parallel);
531 <<
"case=" << mesh_.time().caseName()
532 <<
" region=" << mesh_.name()
533 <<
" time=" << mesh_.time().timeName()
534 <<
" index=" << mesh_.time().timeIndex() <<
endl;
541 mesh_.time().globalCaseName()
550 "case='" + mesh_.time().globalCaseName()
551 +
"' region='" + mesh_.name()
552 +
"' time='" + mesh_.time().timeName()
553 +
"' index='" +
Foam::name(mesh_.time().timeIndex())
568 const label pointOffset =
575 writeCellsLegacy(pointOffset);
584 writeCellsConnectivity(pointOffset);
585 writeCellsFaces(pointOffset);
598 return enter_CellData(numberOfCells_, nFields);
604 return enter_PointData(numberOfPoints_, nFields);
610 if (isState(outputState::CELL_DATA))
617 <<
" for cellID field" <<
nl <<
endl
621 const labelList& cellMap = vtuCells_.cellMap();
624 this->beginDataArray<label>(
"cellID", numberOfCells_);
629 const globalIndex globalCellOffset(vtuCells_.nFieldCells());
638 this->endDataArray();
663 <<
" for pointID field" <<
nl <<
endl
668 this->beginDataArray<label>(
"pointID", numberOfPoints_);
671 const label pointOffset =
673 parallel_ ? globalIndex(vtuCells_.nPoints()).localStart() : 0
677 const label cellOffset =
679 parallel_ ? globalIndex(vtuCells_.nCells()).localStart() : 0
686 label pointi = vtuCells_.nPoints();
687 for (
const label celli : vtuCells_.addPointCellLabels())
689 pointIds[pointi] = (-1 - celli - cellOffset);
702 this->endDataArray();