New issue 1217: Slicing semi structured grid fails https://bitbucket.org/yt_analysis/yt/issues/1217/slicing-semi-structured-grid-fails

Kacper Kowalik:

Following script:

``` #!python

import yt import numpy as np

xgrid = np.array([-1, -0.65, 0, 0.65, 1]) ygrid = np.array([-1, 0, 1]) zgrid = np.array([-1, -0.447, 0.447, 1])

coords, conn = yt.hexahedral_connectivity(xgrid, ygrid, zgrid)

arr = np.ones((len(xgrid)-1, len(ygrid)-1, len(zgrid)-1))

bbox = np.array([[np.min(xgrid),np.max(xgrid)],

[np.min(ygrid),np.max(ygrid)],
[np.min(zgrid),np.max(zgrid)]])

data = {"density" : arr} ds = yt.load_hexahedral_mesh(data, conn, coords, 1.0, bbox=bbox) yt.SlicePlot(ds, “y”, “density”) ```

yields

``` Traceback (most recent call last):

File "ala.py", line 17, in <module>
  yt.SlicePlot(ds, "y", "density")
File "/home/xarth/codes/yt-my/yt/visualization/plot_window.py", line 1867, in SlicePlot
  return AxisAlignedSlicePlot(ds, normal, fields, *args, **kwargs)
File "/home/xarth/codes/yt-my/yt/visualization/plot_window.py", line 1240, in __init__
  slc.get_data(fields)
File "/home/xarth/codes/yt-my/yt/data_objects/data_containers.py", line 1172, in get_data
  fluids, self, self._current_chunk)
File "/home/xarth/codes/yt-my/yt/geometry/geometry_handler.py", line 245, in _read_fluid_fields
  chunk_size)
File "/home/xarth/codes/yt-my/yt/frontends/stream/io.py", line 229, in _read_fluid_selection
  ind += g.select(selector, ds, rv[field], ind) # caches
File "/home/xarth/codes/yt-my/yt/data_objects/unstructured_mesh.py", line 142, in select
  dest[offset:offset+count] = source[mask, ...]

IndexError: index 4 is out of bounds for axis 0 with size 4 ```

Regression was introduced by c697901a , specifically:

``` --- a/yt/data_objects/unstructured_mesh.py +++ b/yt/data_objects/unstructured_mesh.py @@ -127,7 +138,7 @@

mask = self._get_selector_mask(selector)
count = self.count(selector)
if count == 0: return 0

+ dest[offset:offset+count] = source[mask,…]

        return count

    def count(self, selector):

```