[yt-users] clump as container
David Collins
dcollins4096 at gmail.com
Thu Dec 18 06:36:15 PST 2014
>
>
> I believe what's going on is that the object gets stuck in a mid-state
> of generating data and is locked. This is something that is not
> supposed to happen, but we should be able to fail more gracefully.
>
>
Is it stuck because it's hard to get particles directly from the clump?
> > For now, a workaround would be to avoid using the total_mass derived
> > quantity and instead do something like this:
> >
> > 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
> >
> _______________________________________________
> 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/20141218/ecabcfbd/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