[yt-users] Particles in FLASH output

Nathan Goldbaum nathan12343 at gmail.com
Tue Apr 28 11:59:59 PDT 2015


There are instructions to switch to the development version here:

http://yt-project.org/docs/dev/installing.html#installing-yt-using-pip-or-from-source

On Tue, Apr 28, 2015 at 11:56 AM, Yuan Li <bear0980 at gmail.com> wrote:

> 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
>>
>>
>
> _______________________________________________
> 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/8e5fa9dd/attachment.html>
-------------- 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