nschloe/meshio

can not load mesh in paraview: cannot unpack non-iterable CellBlock object

reox opened this issue · 2 comments

reox commented

I noticed I could not load meshes with the paraview plugin when using 5.3.4 on python 3.8:

Traceback (most recent call last):
  File "/programs/shared/paraview/ParaView-5.9.0-RC3-MPI-Linux-Python3.8-64bit/lib/python3.8/site-packages/vtkmodules/util/vtkAlgorithm.py", line 152, in ProcessRequest
    return vtkself.ProcessRequest(request, inInfo, outInfo)
  File "/programs/shared/paraview/ParaView-5.9.0-RC3-MPI-Linux-Python3.8-64bit/lib/python3.8/site-packages/vtkmodules/util/vtkAlgorithm.py", line 198, in ProcessRequest
    return self.RequestData(request, inInfo, outInfo)
  File "/home/reox/.local/share/paraview-5.9/plugins/paraview-meshio-plugin.py", line 85, in RequestData
    for meshio_type, data in cells:
TypeError: cannot unpack non-iterable CellBlock object

This line was probably not updated to the (new?) CellBlock class:

for meshio_type, data in cells:

I think changing the lines to:

for cellblock in cells:
    meshio_type = cellblock.type
    data = cellblock.data

should do the trick (at least for me the mesh loads again), but I don't know if anything else has to be changed?

Indeed, this is an issue that I faced as well (Ubuntu 20.04, Paraview 5.11.0, and meshio 5.3.4) . However, the proposed solution

for cellblock in cells:
meshio_type = cellblock.type
data = cellblock.data

resulted in:

ValueError: invalid literal for int() with base 10: 'quad'

what worked for me is the following:

for cellblock in cells:
meshio_type = meshio_to_vtk_type[cellblock.type]
data = cellblock.data
...

I hope this helps!