[yt-users] clump as container

David Collins dcollins4096 at gmail.com
Wed Dec 17 12:55:23 PST 2014


> Ah, thanks for the hint, I can reproduce this using IsolatedGalaxy now.  I
> will file an issue shortly. Having a repro script should help debugging
> here.
>

Awesome. Let me know if I can help out with your debuging.


> For now, a workaround would be to avoid using the total_mass derived
> quantity and instead do something like this:
>

Groovy.  That seems good for now.

Thanks a ton!
d.


>
> clump = ...
> total_mass = clump.quantity.total_quantity('cell_mass')
> clump['density']
> clump['cell_mass']
>
>
>>
>> The curious disappearing data can be seen here:
>>
>> >>> leaf_clumps[0]['density']
>> YTArray([  94330.76550569,  111095.42419888,  111000.87780872,
>>         158489.47273191,  114487.69237444,  129849.08390983,
>>          95651.97426045,   95462.47824957,  104785.15137116,
>>         149758.92528478,  122558.83598019,   91829.8174425 ,
>>          97015.49553846,  118157.84068288]) g/cm**3
>> >>> leaf_clumps[0]['cell_mass']
>> YTArray([ 0.00070282,  0.00082773,  0.00082702,  0.00118084,  0.000853  ,
>>         0.00096745,  0.00071266,  0.00071125,  0.00078071,  0.00111579,
>>         0.00091313,  0.00068419,  0.00072282,  0.00088034]) g
>> >>> leaf_clumps[0].quantities.total_quantity('cell_mass')
>> 0.0118797558199 g
>> >>> leaf_clumps[0].quantities.total_mass()
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>> line 193, in __call__
>>     rv = super(TotalMass, self).__call__(fields)
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>> line 160, in __call__
>>     rv = super(TotalQuantity, self).__call__(fields)
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>> line 56, in __call__
>>     sto.result = self.process_chunk(ds, *args, **kwargs)
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>> line 166, in process_chunk
>>     for field in fields]
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/data_containers.py",
>> line 248, in __getitem__
>>     self.get_data(f)
>>   File
>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/selection_data_containers.py",
>> line 749, in get_data
>>     raise YTMixedCutRegion(self.conditionals, field)
>> yt.utilities.exceptions.YTMixedCutRegion: Can't mix particle/discrete and
>> fluid/mesh conditions or
>>                quantities.  Field: ('all', 'particle_mass') and
>> Conditions specified:
>>             obj['contours_72e8d63701e04d13bfec60cada79b7ad'] == 1
>> >>> leaf_clumps[0].quantities.total_quantity('cell_mass')
>> 0.0 g
>> >>> leaf_clumps[0]['cell_mass']
>> YTArray([], dtype=float64) g
>>
>>
>>
>> The code to make the clumps
>>
>>     ds = yt.load(setname)
>>     val, loc = ds.find_max('density')
>>     width = (0.05,'code_length')
>>     sphere = ds.sphere(loc,width)
>>     master_clump = Clump(sphere,"density")
>>     c_min = sphere["gas", "density"].min()
>>     c_max = sphere["gas", "density"].max()
>>     step = 2.0
>>     find_clumps(master_clump, c_min, c_max, step)
>>     leaf_clumps = get_lowest_clumps(master_clump)
>>
>>
>>
>>> I'll give that a shot in the morning and report back.
>>>
>>>
>>> Thanks!
>>> d.
>>>
>>>
>>>>
>>>>
>>>>>
>>>>> If I instead try quantities.total_mass(), I get an odd error.
>>>>> >>> leaf_clumps[22].quantities.total_mass()
>>>>> Traceback (most recent call last):
>>>>>   File "<stdin>", line 1, in <module>
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>>>>> line 193, in __call__
>>>>>     rv = super(TotalMass, self).__call__(fields)
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>>>>> line 160, in __call__
>>>>>     rv = super(TotalQuantity, self).__call__(fields)
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>>>>> line 56, in __call__
>>>>>     sto.result = self.process_chunk(ds, *args, **kwargs)
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/derived_quantities.py",
>>>>> line 166, in process_chunk
>>>>>     for field in fields]
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/data_containers.py",
>>>>> line 248, in __getitem__
>>>>>     self.get_data(f)
>>>>>   File
>>>>> "/home/dcollins4096/local-yt-2014-08-27/src/yt-hg/yt/data_objects/selection_data_containers.py",
>>>>> line 749, in get_data
>>>>>     raise YTMixedCutRegion(self.conditionals, field)
>>>>> yt.utilities.exceptions.YTMixedCutRegion: Can't mix particle/discrete
>>>>> and fluid/mesh conditions or
>>>>>                quantities.  Field: ('all', 'particle_mass') and
>>>>> Conditions specified:
>>>>>             obj['contours_8d0408a91fc34e2bbe9eb838d48de46e'] == 1
>>>>>
>>>>
>>>> This is happening because, as the error indicates, you can't combine
>>>> mesh and particle quantities in a cut_region (like a clump is).  The
>>>> total_mass() quantity returns the total mass in particles and gas, so
>>>> that's what's triggering the error. I bet this would work if you asked for
>>>> the total gas mass only. Of course, that would only work if
>>>> clump['cell_mass'] returned something sensible.
>>>>
>>>>
>>>>>
>>>>>
>>>>>
>>>>> I build the clumps in the following manner.  I don't have any
>>>>> validators by design.  Plotting the clumps with
>>>>> annotate_clumps(leaf_clumps) gives reasonable results.
>>>>>
>>>>>     ds = yt.load(setname)
>>>>>     loc = ds.arr([ 0.03613281,  0.79589844,  0.03027344],
>>>>> 'code_length')
>>>>>     width = (0.05,'code_length')
>>>>>     sphere = ds.sphere(loc,width)
>>>>>     master_clump = Clump(sphere,"density")
>>>>> use_particles=False, use_thermal_energy=False)
>>>>>     c_min = sphere["gas", "density"].min()
>>>>>     c_max = sphere["gas", "density"].max()
>>>>>     step = 2.0
>>>>>     find_clumps(master_clump, c_min, c_max, step)
>>>>>     leaf_clumps = get_lowest_clumps(master_clump)
>>>>>
>>>>> Thanks a ton!
>>>>> d.
>>>>>
>>>>> --
>>>>> -- Sent from a computer.
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>
>>> --
>>> -- Sent from a computer.
>>>
>>
>>
>> --
>> -- Sent from a computer.
>>  _______________________________________________
>> 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
>
>

-- 
-- Sent from a computer.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20141217/d094efb4/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