[yt-users] Particles in FLASH output

Jason Galyardt jason.galyardt at gmail.com
Tue Apr 28 15:28:30 PDT 2015


Hi John,

There is no traceback; it fails silently.

Jason
On Apr 28, 2015 5:37 PM, "John Zuhone" <jzuhone at gmail.com> wrote:

> Jason,
>
> What is your traceback now? I’m also getting a failure over here but I
> want to check it against yours.
>
> Best,
>
> John
>
> On Apr 28, 2015, at 4:08 PM, Jason Galyardt <jason.galyardt at gmail.com>
> wrote:
>
> Thanks, John. My domain size is 4 x 4 x 24 kpc, and the size of the
> smallest cell is 31.25 pc, according to print_stats(). Here's the grid
> info, in case it's useful:
>
> level    # grids           # cells         # cells^3
> ----------------------------------------------
>   0        48             24576                30
>   1       384            196608                59
>   2      3072           1572864               117
>   3     24448          12517376               233
> ----------------------------------------------
>         27952          14311424
>
> Cheers,
> Jason
>
> On Tue, Apr 28, 2015 at 4:00 PM, John ZuHone <jzuhone at gmail.com> wrote:
>
>> When I come back from the colloquium I will see what I can do with one of
>> my own datasets.
>>
>> Jason, what is your domain size, and the size of the smallest cell?
>>
>> John ZuHone
>> Kavli Center for Astrophysics and Space Research
>> Massachusetts Institute of Technology
>> 77 Massachusetts Ave., 37-582G
>> Cambridge, MA 02139
>> (w) 617-253-2354
>> (m) 781-708-5004
>> jzuhone at space.mit.edu
>> jzuhone at gmail.com
>> http://www.jzuhone.com
>>
>> On Apr 28, 2015, at 3:55 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>> wrote:
>>
>> We have several public FLASH test datasets here:
>>
>> http://yt-project.org/data/
>>
>> I'm not sure whether any of them have both gas and particles.
>>
>> If you're ok with it and your dataset isn't enormous, it might help to
>> share one of the data files you're working with.  We've used dropbox or
>> google drive to share big files on the mailing list in the past.
>>
>> On Tue, Apr 28, 2015 at 12:52 PM, Jason Galyardt <
>> jason.galyardt at gmail.com> wrote:
>>
>>> Hi John,
>>>
>>> It sounds like we have a bug in v3.0.2. But it's still not working in
>>> v3.2dev. Do you have any test data that you can use to confirm? I would
>>> just like to make sure it's not user error before I submit a bug report.
>>>
>>> By the way, my output files seem fine - I can plot both gas density and
>>> particle locations simultaneously in VisIt.
>>>
>>> Cheers,
>>> Jason
>>>
>>> On Tue, Apr 28, 2015 at 3:44 PM, John Zuhone <jzuhone at gmail.com> wrote:
>>>
>>>> The reason why this would not work in previous yt versions is that
>>>> annotate_particles assumed code units for length, which for flash are
>>>> centimeters. So “4" would be 4 cm, a ridiculously thin slab, which would
>>>> explain why you end up with a zero selection.
>>>>
>>>> It should work now, based on looking at the code, so if it doesn’t then
>>>> we definitely have a bug.
>>>>
>>>> On Apr 28, 2015, at 3:37 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>>>> wrote:
>>>>
>>>>
>>>>
>>>> On Tue, Apr 28, 2015 at 12:27 PM, Jason Galyardt <
>>>> jason.galyardt at gmail.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I've updated to the latest development release of yt (v3.2dev). I no
>>>>> longer get the ValueError to do with zero length selections when I do
>>>>> annotate_particles(). However, I don't get any particles in the plot
>>>>> either. Any other ideas?
>>>>>
>>>>
>>>> Can you try:
>>>>
>>>> p.annotate_particles((4, 'kpc'))
>>>>
>>>> ?
>>>>
>>>> If that works, can you file a bug about annotate_particles not handling
>>>> widths that are YTQuantity instances correctly?
>>>>
>>>> https://bitbucket.org/yt_analysis/yt/issues/new
>>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>> Jason
>>>>>
>>>>> On Tue, Apr 28, 2015 at 2:56 PM, 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
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>
>>>
>> _______________________________________________
>> 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/e27d76d6/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