meshio icon indicating copy to clipboard operation
meshio copied to clipboard

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

Open reox opened this issue 3 years ago • 2 comments

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: https://github.com/nschloe/meshio/blob/0138cc8692b806b44b32d344f7961e8370121ff7/tools/paraview-meshio-plugin.py#L85

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?

reox avatar Mar 25 '22 12:03 reox

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!

mkghadban avatar Jan 17 '23 00:01 mkghadban