From e3e0e0557ff219b5a0c12d87b4e4543e989497b2 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 5 Dec 2018 21:27:29 +0100 Subject: [PATCH] BUG: unguarded use of globalIndex in vtk writers (fixes #1110) - the problem occurred when running the writers in a parallel solver or utility but requesting output on the master only. Adjusted the logic to avoid globalIndex for these cases. Previously the if (parallel_) checks were happening later, after the globalIndex had already been created. --- .../vtk/output/foamVtkInternalWriter.C | 46 ++++++++----------- .../vtk/output/foamVtkInternalWriter.H | 10 ++-- .../vtk/output/foamVtkPatchWriter.C | 33 +++++++------ .../vtk/output/foamVtkPatchWriter.H | 10 ++-- src/fileFormats/vtk/file/foamVtkFileWriter.C | 1 - src/meshTools/output/foamVtkIndPatchWriter.C | 32 ++++++------- src/meshTools/output/foamVtkIndPatchWriter.H | 10 ++-- src/meshTools/output/foamVtkSurfaceWriter.C | 33 +++++++------ src/meshTools/output/foamVtkSurfaceWriter.H | 10 ++-- .../output/foamVtkWriteCellSetFaces.C | 43 +++++++++-------- src/meshTools/output/foamVtkWriteFaceSet.C | 14 ++++-- src/meshTools/output/foamVtkWritePointSet.C | 4 +- 12 files changed, 119 insertions(+), 127 deletions(-) diff --git a/src/conversion/vtk/output/foamVtkInternalWriter.C b/src/conversion/vtk/output/foamVtkInternalWriter.C index 11864207b1..1179b8971f 100644 --- a/src/conversion/vtk/output/foamVtkInternalWriter.C +++ b/src/conversion/vtk/output/foamVtkInternalWriter.C @@ -123,10 +123,7 @@ void Foam::vtk::internalWriter::writePoints() } -void Foam::vtk::internalWriter::writeCellsLegacy -( - const globalIndex& pointOffsets -) +void Foam::vtk::internalWriter::writeCellsLegacy(const label pointOffset) { const List& cellTypes = vtuCells_.cellTypes(); const labelList& vertLabels = vtuCells_.vertLabels(); @@ -165,7 +162,7 @@ void Foam::vtk::internalWriter::writeCellsLegacy vtk::vtuSizing::copyVertLabelsLegacy ( vertLabels, - pointOffsets.localStart() + pointOffset ) ); } @@ -206,10 +203,7 @@ void Foam::vtk::internalWriter::writeCellsLegacy } -void Foam::vtk::internalWriter::writeCellsConnectivity -( - const globalIndex& pointOffsets -) +void Foam::vtk::internalWriter::writeCellsConnectivity(const label pointOffset) { // // 'connectivity' @@ -239,7 +233,7 @@ void Foam::vtk::internalWriter::writeCellsConnectivity vtk::vtuSizing::copyVertLabelsXml ( vertLabels, - pointOffsets.localStart() + pointOffset ) ); } @@ -263,12 +257,6 @@ void Foam::vtk::internalWriter::writeCellsConnectivity const labelList& vertOffsets = vtuCells_.vertOffsets(); label nOffs = vertOffsets.size(); - // global connectivity offsets - const globalIndex procOffset - ( - vertOffsets.empty() ? 0 : vertOffsets.last() - ); - if (parallel_) { reduce(nOffs, sumOp