Issue #1310: YTBoundsDefinitionError (yt_analysis/yt)

New issue 1310: YTBoundsDefinitionError https://bitbucket.org/yt_analysis/yt/issues/1310/ytboundsdefinitionerror Corentin Cadiou: HI, I am doing a SlicePlot of a deposit field using the following code: `p = yt.SlicePlot(ds, 'z', ('deposit', 'all_cic'))`. If I do the slice in the `x` or `y` directions, it works fine. But if I slice in the `z` direction, I get: ``` #!python --------------------------------------------------------------------------- YTBoundsDefinitionError Traceback (most recent call last) <ipython-input-11-d477c9a88f02> in <module>() ----> 1 p = yt.SlicePlot(ds, 'z', ('deposit', 'all_cic')) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/visualization/plot_window.pyc in SlicePlot(ds, normal, fields, axis, *args, **kwargs) 1999 del kwargs['north_vector'] 2000 -> 2001 return AxisAlignedSlicePlot(ds, normal, fields, *args, **kwargs) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/visualization/plot_window.pyc in __init__(self, ds, axis, fields, center, width, axes_unit, origin, right_handed, fontsize, field_parameters, window_ size, aspect, data_source) 1324 slc = ds.slice(axis, center[axis], field_parameters=field_parameters, 1325 center=center, data_source=data_source) -> 1326 slc.get_data(fields) 1327 validate_mesh_fields(slc, fields) 1328 PWViewerMPL.__init__(self, slc, bounds, origin=origin, /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in get_data(self, fields) 1331 1332 fields_to_generate += gen_fluids + gen_particles -> 1333 self._generate_fields(fields_to_generate) 1334 for field in list(self.field_data.keys()): 1335 if field not in ofields: /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in _generate_fields(self, fields_to_generate) 1351 fi = self.ds._get_field_info(*field) 1352 try: -> 1353 fd = self._generate_field(field) 1354 if fd is None: 1355 raise RuntimeError /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in _generate_field(self, field) 316 tr = self._generate_particle_field(field) 317 else: --> 318 tr = self._generate_fluid_field(field) 319 if tr is None: 320 raise YTCouldNotGenerateField(field, self.ds) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in _generate_fluid_field(self, field) 334 finfo.check_available(gen_obj) 335 except NeedsGridType as ngt_exception: --> 336 rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones) 337 else: 338 rv = finfo(gen_obj) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in _generate_spatial_fluid(self, field, ngz) 354 o = self._current_chunk.objs[0] 355 with o._activate_cache(): --> 356 ind += o.select(self.selector, self[field], rv, ind) 357 else: 358 chunks = self.index._chunk(self, "spatial", ngz = ngz) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p yc in __getitem__(self, key) 279 return self.field_data[f] 280 else: --> 281 self.get_data(f) 282 # fi.units is the unit expression string. We depend on the registry 283 # hanging off the dataset to define this unit object. /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in get_data(self, fields) 1331 1332 fields_to_generate += gen_fluids + gen_particles -> 1333 self._generate_fields(fields_to_generate) 1334 for field in list(self.field_data.keys()): 1335 if field not in ofields: /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_fields(self, fields_to_generate) 1351 fi = self.ds._get_field_info(*field) 1352 try: -> 1353 fd = self._generate_field(field) 1354 if fd is None: 1355 raise RuntimeError /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_field(self, field) 316 tr = self._generate_particle_field(field) 317 else: --> 318 tr = self._generate_fluid_field(field) 319 if tr is None: 320 raise YTCouldNotGenerateField(field, self.ds) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_fluid_field(self, field) 336 rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones) 337 else: --> 338 rv = finfo(gen_obj) 339 return rv 340 /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/fields/derived_field.pyc in __call__(self, data) 218 "for %s" % (self.name,)) 219 with self.unit_registry(data): --> 220 dd = self._function(self, data) 221 for field_name in data.keys(): 222 if field_name not in original_fields: /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/fields/particle_fields.pyc in particle_cic(field, data) 141 def particle_cic(field, data): 142 pos = data[ptype, coord_name] --> 143 d = data.deposit(pos, [data[ptype, mass_name]], method = "cic") 144 d = data.apply_units(d, data[ptype, mass_name].units) 145 d /= data["index", "cell_volume"] /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/octree_subset.pyc in deposit(self, positions, fields, method, kernel_name) 184 # We allocate number of zones, not number of octs 185 op = cls(nvals, kernel_name) --> 186 op.initialize() 187 mylog.debug("Depositing %s (%s^3) particles into %s Octs", 188 positions.shape[0], positions.shape[0]**0.3333333, nvals[-1]) /home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/geometry/particle_deposit.pyx in yt.geometry.particle_deposit.CICDeposit.initialize (yt/geometry/particle_deposit.c:8068)() 332 if not all(_ > 1 for _ in self.nvals): 333 from yt.utilities.exceptions import YTBoundsDefinitionError --> 334 raise YTBoundsDefinitionError( 335 "CIC requires minimum of 2 zones in all dimensions", 336 self.nvals) YTBoundsDefinitionError: This operation has encountered a bounds error: CIC requires minimum of 2 zones in all dimensions Specified bounds are (2, 2, 2, 1) ``` I am using the yt 3.4-dev version.
participants (1)
-
Corentin Cadiou