BUG: foamToVTK -cellSet produces rubbish or segfault (closes #516)

- erroneous double logic for subset meshes.

  The underlying vtk::vtuCells uses a cellMap to map into a global
  field, which also allows handling of decomposed polyhedral cells.

  If a mesh subset is involved (eg, cellSet, cellZone), then the
  set/zone cellMap can be used to ensure that the original number is
  properly adjusted. For foamToVTK, the meshSubsetHelper already
  does the subsetting and is used when loading fields.

  Does not affect ParaView reader module since there we work on the
  full field and do the subsetting manually (using the cellMap).
This commit is contained in:
Mark Olesen
2017-07-04 13:19:16 +02:00
parent 2910240040
commit 6dd5a5f35f

View File

@ -831,16 +831,8 @@ int main(int argc, char *argv[])
{
if (vtuMeshCells.empty())
{
// subMesh or baseMesh
vtuMeshCells.reset(meshRef.mesh());
// Convert cellMap, addPointCellLabels to global cell ids
if (meshRef.useSubMesh())
{
vtuMeshCells.renumberCells
(
meshRef.subsetter().cellMap()
);
}
}
// Create file and write header
@ -856,7 +848,7 @@ int main(int argc, char *argv[])
// Write mesh
vtk::internalWriter writer
(
meshRef.baseMesh(),
meshRef.mesh(),
vtuMeshCells,
outputName,
fmtType