[yt-users] Particles in FLASH output

Jason Galyardt jason.galyardt at gmail.com
Tue Apr 28 11:53:22 PDT 2015


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20150428/c92378f7/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