[yt-users] clump as container

David Collins dcollins4096 at gmail.com
Wed Dec 17 10:12:20 PST 2014


>
> Not sure why this is happening.  Any chance you can reproduce it using one
>> of the test datasets on yt-project.org/data?
>>
>
>
I tried with the IsolatedGalaxy simulation, using the same code as before
(below for reference)  but everything works fine.

I did learn that if I don't do quantities.total_mass() on any clump, I get
sensical results, but as soon as I do call total_mass, it eliminates the
data on all clumps.  This simulation has only tracer particles, an no other
particles, is that possibly the problem?

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