39 void Foam::vtk::internalMeshWriter::beginPiece()
71 void Foam::vtk::internalMeshWriter::writePoints()
81 const uint64_t payLoad =
82 vtk::sizeofData<float,3>(numberOfPoints_);
88 format().writeSize(payLoad);
100 vtuCells_.addPointCellLabels()
110 vtuCells_.addPointCellLabels()
129 void Foam::vtk::internalMeshWriter::writeCellsLegacy(
const label pointOffset)
131 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
132 const labelList& vertLabels = vtuCells_.vertLabels();
135 label nVerts = vertLabels.size();
139 reduce(nCells, sumOp<label>());
140 reduce(nVerts, sumOp<label>());
143 if (nCells != numberOfCells_)
146 <<
"Expecting " << numberOfCells_
147 <<
" cells, but found " << nCells
157 <<
"CELLS " << nCells <<
' ' << nVerts <<
nl;
189 <<
"CELL_TYPES " << nCells <<
nl;
209 void Foam::vtk::internalMeshWriter::writeCellsConnectivity(
const label pointOffset)
215 const labelList& vertLabels = vtuCells_.vertLabels();
216 label nVerts = vertLabels.size();
220 reduce(nVerts, sumOp<label>());
225 const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
228 format().writeSize(payLoad);
260 const labelList& vertOffsets = vtuCells_.vertOffsets();
261 label nOffs = vertOffsets.size();
265 reduce(nOffs, sumOp<label>());
270 const uint64_t payLoad =
271 vtk::sizeofData<label>(nOffs);
274 format().writeSize(payLoad);
280 const globalIndex procOffset
282 vertOffsets.empty() ? 0 : vertOffsets.last()
304 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
309 reduce(nCells, sumOp<label>());
312 if (nCells != numberOfCells_)
315 <<
"Expecting " << numberOfCells_
316 <<
" cells, but found " << nCells
322 const uint64_t payLoad =
323 vtk::sizeofData<uint8_t>(nCells);
326 format().writeSize(payLoad);
347 void Foam::vtk::internalMeshWriter::writeCellsFaces(
const label pointOffset)
349 label nFaceLabels = vtuCells_.faceLabels().size();
353 reduce(nFaceLabels, sumOp<label>());
367 const labelList& faceLabels = vtuCells_.faceLabels();
374 const uint64_t payLoad =
375 vtk::sizeofData<label>(nFaceLabels);
378 format().writeSize(payLoad);
418 const labelList& faceOffsets = vtuCells_.faceOffsets();
419 const label nLocalCells = vtuCells_.cellTypes().size();
421 label nCells = nLocalCells;
425 reduce(nCells, sumOp<label>());
430 const uint64_t payLoad =
431 vtk::sizeofData<label>(nCells);
434 format().writeSize(payLoad);
440 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
441 const label nLocalCells =
cellTypes.size();
443 const globalIndex procOffset(faceLabels.size());
447 if (faceOffsets.size())
449 faceOffsetsRenumber =
453 procOffset.localStart()
458 faceOffsetsRenumber.
resize(nLocalCells, -1);
480 Foam::vtk::internalMeshWriter::internalMeshWriter
498 Foam::vtk::internalMeshWriter::internalMeshWriter
508 open(file, parallel);
512 Foam::vtk::internalMeshWriter::internalMeshWriter
523 open(file, parallel);
539 <<
"case=" << mesh_.time().caseName()
540 <<
" region=" << mesh_.name()
541 <<
" time=" << mesh_.time().timeName()
542 <<
" index=" << mesh_.time().timeIndex() <<
endl;
549 mesh_.time().globalCaseName()
558 "case='" + mesh_.time().globalCaseName()
559 +
"' region='" + mesh_.name()
560 +
"' time='" + mesh_.time().timeName()
561 +
"' index='" +
Foam::name(mesh_.time().timeIndex())
576 const label pointOffset =
578 parallel_ ?
globalIndex(vtuCells_.nFieldPoints()).localStart() : 0
583 writeCellsLegacy(pointOffset);
592 writeCellsConnectivity(pointOffset);
593 writeCellsFaces(pointOffset);
606 return enter_CellData(numberOfCells_, nFields);
612 return enter_PointData(numberOfPoints_, nFields);
625 <<
"Bad writer state (" << stateNames[state_]
627 <<
") for cellID field" <<
nl <<
endl
631 const labelList& cellMap = vtuCells_.cellMap();
637 vtk::legacy::intField<1>(
format(),
"cellID", numberOfCells_);
641 const uint64_t payLoad = vtk::sizeofData<label>(numberOfCells_);
643 format().beginDataArray<label>(
"cellID");
644 format().writeSize(payLoad);
652 const globalIndex globalCellOffset(vtuCells_.nFieldCells());
684 <<
"Bad writer state (" << stateNames[state_]
686 <<
") for procID field" <<
nl <<
endl
690 const globalIndex procMaps(vtuCells_.nFieldCells());
696 const label nCells = procMaps.
size();
702 vtk::legacy::intField<1>(
format(),
"procID", nCells);
706 const uint64_t payLoad =
707 vtk::sizeofData<label>(nCells);
709 format().beginDataArray<label>(
"procID");
710 format().writeSize(payLoad);
740 <<
"Bad writer state (" << stateNames[state_]
742 <<
") for pointID field" <<
nl <<
endl
750 vtk::legacy::intField<1>(
format(),
"pointID", numberOfPoints_);
754 const uint64_t payLoad = vtk::sizeofData<label>(numberOfPoints_);
756 format().beginDataArray<label>(
"pointID");
757 format().writeSize(payLoad);
763 const label pointOffset =
765 parallel_ ?
globalIndex(vtuCells_.nPoints()).localStart() : 0
769 const label cellOffset =
771 parallel_ ?
globalIndex(vtuCells_.nCells()).localStart() : 0
778 label pointi = vtuCells_.nPoints();
779 for (
const label celli : vtuCells_.addPointCellLabels())
781 pointIds[pointi] = (-1 - celli - cellOffset);