[yt-users] Accumulation in 3.0

Matthew Turk matthewturk at gmail.com
Tue Nov 4 11:44:05 PST 2014


Hi Nathan,

Ah, usually what we do is, on the way in to Cython, call
convert_to_units(field.units).  I think this will fix it here.

-Matt

On Tue Nov 04 2014 at 1:42:49 PM Nathan Goldbaum <nathan12343 at gmail.com>
wrote:

> Dug into this a little bit.
>
> The issue is that querying the particle_mass field returns CGS values, but
> the field_info for particle_mass says it should be in code_mass. This is
> illustrated by the following script: https://bpaste.net/show/6ee56ae61fa6
>
> Does anyone remember why this is the case?
>
> The reason this is coming up here is because the profiling code passes raw
> numpy arrays to the cython parallel profiling machinery, so the units that
> are attached to the data when we query the data source are stripped off.
> We're relying on the field_info units entry for all fields being identical
> to the units that get appended to the results of a field access on a data
> object.
>
> Unfortunately I don't have time right now to figure out where this
> inconsistency is coming from...
>
> -Nathan
>
> On Tue, Nov 4, 2014 at 10:42 AM, John Regan <johnanthonyregan at gmail.com>
> wrote:
>
>> Hi Nathan,
>>
>> Sure. Using the enzo_tiny_cosmology I see the same problem. Script
>> attached.
>>
>> On Tue, Nov 4, 2014 at 6:29 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>> wrote:
>>
>>> Hi John,
>>>
>>> Do you have a short script using one of the test datasets on
>>> yt-project.org/data that reproduces this behavior?
>>>
>>> -Nathan
>>>
>>> On Tue, Nov 4, 2014 at 10:26 AM, John Regan <johnanthonyregan at gmail.com>
>>> wrote:
>>>
>>>> Hi Matt,
>>>>
>>>> It looks like the particle mass is in grams but the unit assignment
>>>> sets it to code_mass. Then when the units is set to Msun the numbers get
>>>> crazy. I can't see easily where the units for the particle mass get set in
>>>> the create_profile routine (in field/particle_fields the mass is set to g
>>>> in particle_mass()). Any idea where this might be getting all mixed up or
>>>> how to force the mass units to be grams in create_profile()?
>>>>
>>>> Cheers,
>>>> John
>>>>
>>>> On Mon, Nov 3, 2014 at 5:18 PM, John Regan <johnanthonyregan at gmail.com>
>>>> wrote:
>>>>
>>>>> Yeah that's what I thought first but 1 Msun = 10^33 g. So that would
>>>>> put the inner DM mass at ~ 10^14 right?
>>>>>
>>>>> The total mass inside the sphere of 1kpc is only about 10^7 though.
>>>>> Something is not quite correct somewhere in the profiling calculation.
>>>>>
>>>>> On Mon, Nov 3, 2014 at 5:16 PM, Matthew Turk <matthewturk at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Yup, those sure are weird!  Looks to me like a units issue -- any
>>>>>> chance those could be in grams but reported in Msun?
>>>>>>
>>>>>>
>>>>>> On Mon Nov 03 2014 at 11:15:23 AM John Regan <
>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>
>>>>>>> Hi Matt,
>>>>>>>
>>>>>>> Ah I see what you mean now. Changing 'radius' to 'particle_radius'
>>>>>>> worked nicely. However, the results are bit weird.
>>>>>>>
>>>>>>> rpm = yt.create_profile(sp, ['particle_radius'],  ['particle_mass'],
>>>>>>>                         units = {'particle_radius': 'pc',
>>>>>>> 'particle_mass' : 'Msun'},
>>>>>>>                         n_bins=20, weight_field=None,
>>>>>>> accumulation=True, fractional=False)
>>>>>>> print "Particle Mass = ", rpm["particle_mass"]
>>>>>>>
>>>>>>> Particle Mass =  [  0.00000000e+00   0.00000000e+00
>>>>>>> 0.00000000e+00   2.17730865e+47
>>>>>>>    2.39503952e+48   5.00780990e+48   9.36242721e+48   2.87404742e+49
>>>>>>>    8.03426893e+49   1.91385431e+50   4.44824158e+50   1.02681876e+51
>>>>>>>    2.28900459e+51   4.74174278e+51   1.05066029e+52   2.07602025e+52
>>>>>>>    3.49614805e+52   4.89060538e+52   6.82621100e+52
>>>>>>> 1.08907237e+53] Msun
>>>>>>>
>>>>>>> Any idea what is causing the crazy values?
>>>>>>>
>>>>>>> On Mon, Nov 3, 2014 at 4:23 PM, Matthew Turk <matthewturk at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi John,
>>>>>>>>
>>>>>>>> It was exactly the same error, when you used particle_radius in
>>>>>>>> both places that "radius" was used before?
>>>>>>>>
>>>>>>>> -Matt
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon Nov 03 2014 at 7:06:44 AM John Regan <
>>>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Kacper,
>>>>>>>>>
>>>>>>>>> Of course - I should have noticed that. Thanks for finding that.
>>>>>>>>> However, I notice that when I try to create a profile for the Dark
>>>>>>>>> (particle) matter I run into some trouble as well.
>>>>>>>>>
>>>>>>>>> rpm = yt.create_profile(sp, 'radius',  ['particle_mass'],
>>>>>>>>>                         units = {'radius': 'pc', 'particle_mass' :
>>>>>>>>> 'Msun'},
>>>>>>>>>                         n_bins=20, weight_field=None,
>>>>>>>>> accumulation=True, fractional=False)
>>>>>>>>>
>>>>>>>>> This gives the following error:
>>>>>>>>>
>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>   File "EnclosedMass.py", line 35, in <module>
>>>>>>>>>     n_bins=20, weight_field=None, accumulation=True,
>>>>>>>>> fractional=False)
>>>>>>>>>   File
>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>> line 1361, in create_profile
>>>>>>>>>     obj.add_fields([field for field in fields])
>>>>>>>>>   File
>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>> line 782, in add_fields
>>>>>>>>>     self._bin_chunk(chunk, fields, temp_storage)
>>>>>>>>>   File
>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>> line 979, in _bin_chunk
>>>>>>>>>     rv = self._get_data(chunk, fields)
>>>>>>>>>   File
>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>> line 910, in _get_data
>>>>>>>>>     arr[:,i] = chunk[field][filter]
>>>>>>>>>   File
>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/units/yt_array.py", line
>>>>>>>>> 963, in __getitem__
>>>>>>>>>     ret = super(YTArray, self).__getitem__(item)
>>>>>>>>> ValueError: too many boolean indices
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Has anyone seen this before? For the 'cell_mass' everything works
>>>>>>>>> fine.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>> John
>>>>>>>>>
>>>>>>>>> On Sat, Nov 1, 2014 at 6:49 PM, Kacper Kowalik <
>>>>>>>>> xarthisius.kk at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi John,
>>>>>>>>>> I think that if you want to compute "total" instead of mean you
>>>>>>>>>> need to set weight_field to None in create_profile.
>>>>>>>>>> Cheers,
>>>>>>>>>> Kacper
>>>>>>>>>>
>>>>>>>>>> On Sat Nov 01 2014 at 6:10:50 AM John Regan <
>>>>>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> Is the accumulation flag working in 3.0?
>>>>>>>>>>> I tried to plot the enclosed mass in a sphere and I got some
>>>>>>>>>>> funny results.
>>>>>>>>>>>
>>>>>>>>>>> rpm = yt.create_profile(sp, 'radius',  'cell_mass',
>>>>>>>>>>>                         units = {'radius': 'pc', 'cell_mass' :
>>>>>>>>>>> 'Msun'},
>>>>>>>>>>>                         weight_field='density',
>>>>>>>>>>> accumulation=True, fractional=False)
>>>>>>>>>>>
>>>>>>>>>>> print "Mass = ", rpm["gas", "cell_mass"]
>>>>>>>>>>>
>>>>>>>>>>> In this case bin[n-1] gives a mass of something like 0.5 Msun
>>>>>>>>>>> but when I print the totals quantity I get a value of several orders of
>>>>>>>>>>> magnitude higher and closer to what I would expect.
>>>>>>>>>>>
>>>>>>>>>>> sp.quantities.total_quantity(["cell_mass", "particle_mass"])
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> John
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> 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/20141104/5b468df3/attachment.html>


More information about the yt-users mailing list