Hello,
I’m trying to open vtu files. They are working with version 5.7 and previous, but not with 5.8, returning:
ERROR: In C:\bbd\ecd3383f\build\superbuild\paraview\src\VTK\IO\XML\vtkXMLUnstructuredDataReader.cxx, line 649
vtkXMLUnstructuredGridReader (000001A6C2F441B0): Error reading cell offsets: Unsupported array type: vtkUnsignedLongLongArray
Any idea of what have may have changed between the two versions?
Thanks
mwestphal
(Mathieu Westphal (Kitware))
March 6, 2020, 9:23am
4
As specified by the VTK file format document, connectivity and offsets should be Int32.
Not sure why it worked in 5.7, but the XML Readers have been reworked recently so this accidental support may have been removed.
https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf
<Cells>
<DataArray type=”Int32” Name=”connectivity” .../>
<DataArray type=”Int32” Name=”offsets” .../>
<DataArray type=”UInt8” Name=”types” .../>
</Cells>
cory.quammen
(Cory Quammen (Kitware))
March 6, 2020, 2:16pm
6
1 Like
BillS
(Bill Slade)
March 12, 2020, 11:05am
7
Another approach: I found that piping the .vtu files through "sed -i ‘s/UInt32/Int32/g’ " allowed reading by version 5.8.
I’m looking at the code in vtkXMLUnstructuredDataReader.cxx:661
// Use a vtkCellArray::ArrayType64 to ensure we can represent the incoming offset array type.
vtkSmartPointervtkCellArray::ArrayType64 newArray =
vtkSmartPointervtkCellArray::ArrayType64 ::New();
It looks like the internal memory can handle 64 bit already. Then why is it limited to 32? Also why use signed when unsigned for connectivity and offsets is a more suitable type? Is this limitation by design?
mwestphal
(Mathieu Westphal (Kitware))
May 24, 2020, 2:42am
9
Take a look at https://gitlab.kitware.com/paraview/paraview/issues/19698
This is already fixed and will be present in ParaView 5.8.1 that will come out in June.
1 Like