[yt-users] Particles in FLASH output
Yuan Li
bear0980 at gmail.com
Tue Apr 28 11:56:32 PDT 2015
Hi Jason,
I had trouble with Flash particles last year, and John ZuHone fixed the
bug. Could you try the newest yt3 and see if the problem goes away?
Yuan
On Tue, Apr 28, 2015 at 2:53 PM, Jason Galyardt <jason.galyardt at gmail.com>
wrote:
> Nathan,
>
> I'm using yt version 3.0.2 (which I see is not quite current) on Debian 7
> (wheezy). I tried to pastebin the iPython error traceback, but it failed
> with a complaint that the MySQL server has 'gone away'. With apologies to
> the list, here's the traceback:
>
> ---------------------------------------------------------------------------
> ValueError Traceback (most recent call last)
> <ipython-input-49-3f118016da60> in <module>()
> ----> 1 p.annotate_particles((4.0,'kpc'))
>
> /usr/local/lib/python2.7/dist-packages/yt/visualization/plot_container.pyc
> in newfunc(*args, **kwargs)
> 68 rv = f(*args, **kwargs)
> 69 args[0]._plot_valid = False
> ---> 70 args[0]._setup_plots()
> 71 return rv
> 72 return newfunc
>
> /usr/local/lib/python2.7/dist-packages/yt/visualization/plot_window.pyc in
> _setup_plots(self)
> 860 label.set_fontproperties(fp)
> 861
> --> 862 self.run_callbacks(f)
> 863
> 864 if draw_axes is False:
>
> /usr/local/lib/python2.7/dist-packages/yt/visualization/plot_container.pyc
> in run_callbacks(self, f)
> 313 CallbackMaker = callback_registry[name]
> 314 callback = CallbackMaker(*args[1:], **kwargs)
> --> 315 callback(cbw)
> 316 for key in self.frb.keys():
> 317 if key not in keys:
>
> /usr/local/lib/python2.7/dist-packages/yt/visualization/plot_modifications.pyc
> in __call__(self, plot)
> 1053 pt = self.ptype
> 1054 gg = ( ( reg[pt, field_x] >= x0 ) & ( reg[pt, field_x] <=
> x1 )
> -> 1055 & ( reg[pt, field_y] >= y0 ) & ( reg[pt, field_y] <=
> y1 ) )
> 1056 if self.minimum_mass is not None:
> 1057 gg &= (reg[pt, "particle_mass"] >= self.minimum_mass)
>
> /usr/local/lib/python2.7/dist-packages/yt/data_objects/data_containers.pyc
> in __getitem__(self, key)
> 238 return self.field_data[f]
> 239 else:
> --> 240 self.get_data(f)
> 241 # fi.units is the unit expression string. We depend on the
> registry
> 242 # hanging off the dataset to define this unit object.
>
> /usr/local/lib/python2.7/dist-packages/yt/data_objects/data_containers.pyc
> in get_data(self, fields)
> 665
> 666 read_particles, gen_particles =
> self.index._read_particle_fields(
> --> 667 particles, self,
> self._current_chunk)
> 668 for f, v in read_particles.items():
> 669 self.field_data[f] = self.ds.arr(v, input_units =
> finfos[f].units)
>
> /usr/local/lib/python2.7/dist-packages/yt/geometry/geometry_handler.pyc in
> _read_particle_fields(self, fields, dobj, chunk)
> 232 self._chunk_io(dobj, cache = False),
> 233 selector,
> --> 234 fields_to_read)
> 235 return fields_to_return, fields_to_generate
> 236
>
> /usr/local/lib/python2.7/dist-packages/yt/utilities/io_handler.pyc in
> _read_particle_selection(self, chunks, selector, fields)
> 148 # Here, ptype_map means which particles contribute to a
> given type.
> 149 # And ptf is the actual fields from disk to read.
> --> 150 psize = self._count_particles_chunks(chunks, ptf, selector)
> 151 # Now we allocate
> 152 # ptf, remember, is our mapping of what we want to read
>
> /usr/local/lib/python2.7/dist-packages/yt/utilities/io_handler.pyc in
> _count_particles_chunks(self, chunks, ptf, selector)
> 119 def _count_particles_chunks(self, chunks, ptf, selector):
> 120 psize = defaultdict(lambda: 0) # COUNT PTYPES ON DISK
> --> 121 for ptype, (x, y, z) in self._read_particle_coords(chunks,
> ptf):
> 122 psize[ptype] += selector.count_points(x, y, z, 0.0)
> 123 return dict(psize.items())
>
> /usr/local/lib/python2.7/dist-packages/yt/frontends/flash/io.pyc in
> _read_particle_coords(self, chunks, ptf)
> 72 start = p_ind[g1.id - g1._id_offset]
> 73 end = p_ind[g2.id - g2._id_offset + 1]
> ---> 74 x = np.asarray(p_fields[start:end, px],
> dtype="=f8")
> 75 y = np.asarray(p_fields[start:end, py],
> dtype="=f8")
> 76 z = np.asarray(p_fields[start:end, pz],
> dtype="=f8")
>
> /usr/lib/python2.7/dist-packages/h5py/_hl/dataset.pyc in __getitem__(self,
> args)
> 312
> 313 # Perform the dataspace selection.
> --> 314 selection = sel.select(self.shape, args, dsid=self.id)
> 315
> 316 if selection.nselect == 0:
>
> /usr/lib/python2.7/dist-packages/h5py/_hl/selections.pyc in select(shape,
> args, dsid)
> 92
> 93 sel = SimpleSelection(shape)
> ---> 94 sel[args]
> 95 return sel
> 96
>
> /usr/lib/python2.7/dist-packages/h5py/_hl/selections.pyc in
> __getitem__(self, args)
> 259 return self
> 260
> --> 261 start, count, step, scalar =
> _handle_simple(self.shape,args)
> 262
> 263 self._id.select_hyperslab(start, count, step)
>
> /usr/lib/python2.7/dist-packages/h5py/_hl/selections.pyc in
> _handle_simple(shape, args)
> 510 for arg, length in zip(args, shape):
> 511 if isinstance(arg, slice):
> --> 512 x,y,z = _translate_slice(arg, length)
> 513 s = False
> 514 else:
>
> /usr/lib/python2.7/dist-packages/h5py/_hl/selections.pyc in
> _translate_slice(exp, length)
> 551 raise ValueError("Step must be >= 1 (got %d)" % step)
> 552 if stop == start:
> --> 553 raise ValueError("Zero-length selections are not allowed")
> 554 if stop < start:
> 555 raise ValueError("Reverse-order selections are not
> allowed")
>
> ValueError: Zero-length selections are not allowed
> ------------------------------------------------------------------------
>
> Let me know if any other info would be useful.
>
> Cheers,
> Jason
>
> On Tue, Apr 28, 2015 at 2:39 PM, Nathan Goldbaum <nathan12343 at gmail.com>
> wrote:
>
>>
>>
>> On Tue, Apr 28, 2015 at 11:37 AM, Nathan Goldbaum <nathan12343 at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Tue, Apr 28, 2015 at 11:36 AM, Jason Galyardt <
>>> jason.galyardt at gmail.com> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I'm sure I've just overlooked some bit of documentation, but I'm having
>>>> trouble plotting particles generated by FLASH on top of the gas density.
>>>> I've been able to load a plot file with the associated particle file via
>>>>
>>>> ds = yt.load(plotfileName, particle_filename=partfileName)
>>>>
>>>>
>>>> However, when I try to create a projection and annotate the particles
>>>> with
>>>>
>>>> p = yt.ProjectionPlot(ds, "y", "density")
>>>> p.annotate_particles(1.0) # ValueError!
>>>> # p.annotate_particles((4.0, 'kpc')) # ValueError!
>>>>
>>>>
>>> Can you pastebin the full error traceback? Which yt version are you
>>> using?
>>>
>>
>> Forgot to mention that you can get precise version information by
>> executing "yt version" at the bash command line.
>>
>>
>>>
>>>
>>>> I get a ValueError from h5py indicating that zero-length selections are
>>>> not allowed. I have also tried passing the full width of the simulation
>>>> domain to the annotation function without success. I suspect that this is a
>>>> user error stemming from differences between the way that Enzo and FLASH
>>>> store particle data. However, I can't find much in the way of documentation
>>>> or examples for the FLASH particle data format.
>>>>
>>>> Of course, it would also be handy to be able to write my own analysis
>>>> scripts using both gas and particles, but for now, I'll settle for any help
>>>> I can get on simple plotting functionality.
>>>>
>>>> Thanks,
>>>>
>>>> Jason Galyardt
>>>> Department of Physics and Astronomy
>>>> University of Georgia
>>>>
>>>>
>>>> _______________________________________________
>>>> yt-users mailing list
>>>> yt-users at lists.spacepope.org
>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20150428/c15bebaf/attachment.htm>
-------------- next part --------------
_______________________________________________
yt-users mailing list
yt-users at lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
More information about the yt-users
mailing list