38 void Foam::vtk::internalWriter::beginPiece()
47 reduce(numberOfPoints_, sumOp<label>());
48 reduce(numberOfCells_, sumOp<label>());
55 <<
"nPoints=" << numberOfPoints_ <<
" nCells=" << numberOfCells_ <<
nl;
70 void Foam::vtk::internalWriter::writePoints()
80 const uint64_t payLoad =
81 vtk::sizeofData<float,3>(numberOfPoints_);
87 format().writeSize(payLoad);
99 vtuCells_.addPointCellLabels()
109 vtuCells_.addPointCellLabels()
128 void Foam::vtk::internalWriter::writeCellsLegacy(
const label pointOffset)
130 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
131 const labelList& vertLabels = vtuCells_.vertLabels();
134 label nVerts = vertLabels.size();
138 reduce(nCells, sumOp<label>());
139 reduce(nVerts, sumOp<label>());
142 if (nCells != numberOfCells_)
145 <<
"Expecting " << numberOfCells_
146 <<
" cells, but found " << nCells
156 <<
"CELLS " << nCells <<
' ' << nVerts <<
nl;
188 <<
"CELL_TYPES " << nCells <<
nl;
208 void Foam::vtk::internalWriter::writeCellsConnectivity(
const label pointOffset)
214 const labelList& vertLabels = vtuCells_.vertLabels();
215 label nVerts = vertLabels.size();
219 reduce(nVerts, sumOp<label>());
224 const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
227 format().writeSize(payLoad);
259 const labelList& vertOffsets = vtuCells_.vertOffsets();
260 label nOffs = vertOffsets.size();
264 reduce(nOffs, sumOp<label>());
269 const uint64_t payLoad =
270 vtk::sizeofData<label>(nOffs);
273 format().writeSize(payLoad);
279 const globalIndex procOffset
281 vertOffsets.empty() ? 0 : vertOffsets.last()
303 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
308 reduce(nCells, sumOp<label>());
311 if (nCells != numberOfCells_)
314 <<
"Expecting " << numberOfCells_
315 <<
" cells, but found " << nCells
321 const uint64_t payLoad =
322 vtk::sizeofData<uint8_t>(nCells);
325 format().writeSize(payLoad);
346 void Foam::vtk::internalWriter::writeCellsFaces(
const label pointOffset)
348 label nFaceLabels = vtuCells_.faceLabels().size();
352 reduce(nFaceLabels, sumOp<label>());
366 const labelList& faceLabels = vtuCells_.faceLabels();
373 const uint64_t payLoad =
374 vtk::sizeofData<label>(nFaceLabels);
377 format().writeSize(payLoad);
417 const labelList& faceOffsets = vtuCells_.faceOffsets();
418 const label nLocalCells = vtuCells_.cellTypes().size();
420 label nCells = nLocalCells;
424 reduce(nCells, sumOp<label>());
429 const uint64_t payLoad =
430 vtk::sizeofData<label>(nCells);
433 format().writeSize(payLoad);
439 const List<uint8_t>&
cellTypes = vtuCells_.cellTypes();
442 const globalIndex procOffset(faceLabels.size());
446 if (faceOffsets.size())
448 faceOffsetsRenumber =
452 procOffset.localStart()
457 faceOffsetsRenumber.
resize(nLocalCells, -1);
479 Foam::vtk::internalWriter::internalWriter
497 Foam::vtk::internalWriter::internalWriter
507 open(file, parallel);
511 Foam::vtk::internalWriter::internalWriter
522 open(file, parallel);
538 <<
"case=" << mesh_.time().caseName()
539 <<
" region=" << mesh_.name()
540 <<
" time=" << mesh_.time().timeName()
541 <<
" index=" << mesh_.time().timeIndex() <<
endl;
548 mesh_.time().globalCaseName()
557 "case='" + mesh_.time().globalCaseName()
558 +
"' region='" + mesh_.name()
559 +
"' time='" + mesh_.time().timeName()
560 +
"' index='" +
Foam::name(mesh_.time().timeIndex())
575 const label pointOffset =
577 parallel_ ?
globalIndex(vtuCells_.nFieldPoints()).localStart() : 0
582 writeCellsLegacy(pointOffset);
591 writeCellsConnectivity(pointOffset);
592 writeCellsFaces(pointOffset);
605 return enter_CellData(numberOfCells_, nFields);
611 return enter_PointData(numberOfPoints_, nFields);
624 <<
"Bad writer state (" << stateNames[state_]
626 <<
") for cellID field" <<
nl <<
endl
630 const labelList& cellMap = vtuCells_.cellMap();
636 vtk::legacy::intField<1>(
format(),
"cellID", numberOfCells_);
640 const uint64_t payLoad = vtk::sizeofData<label>(numberOfCells_);
643 format().writeSize(payLoad);
651 const globalIndex globalCellOffset(vtuCells_.nFieldCells());
683 <<
"Bad writer state (" << stateNames[state_]
685 <<
") for procID field" <<
nl <<
endl
689 const globalIndex procMaps(vtuCells_.nFieldCells());
701 vtk::legacy::intField<1>(
format(),
"procID", nCells);
705 const uint64_t payLoad =
706 vtk::sizeofData<label>(nCells);
709 format().writeSize(payLoad);
739 <<
"Bad writer state (" << stateNames[state_]
741 <<
") for pointID field" <<
nl <<
endl
749 vtk::legacy::intField<1>(
format(),
"pointID", numberOfPoints_);
753 const uint64_t payLoad = vtk::sizeofData<label>(numberOfPoints_);
756 format().writeSize(payLoad);
762 const label pointOffset =
764 parallel_ ?
globalIndex(vtuCells_.nPoints()).localStart() : 0
768 const label cellOffset =
770 parallel_ ?
globalIndex(vtuCells_.nCells()).localStart() : 0
777 label pointi = vtuCells_.nPoints();
778 for (
const label celli : vtuCells_.addPointCellLabels())
780 pointIds[pointi] = (-1 - celli - cellOffset);