[yt-users] Particle profiles
Matthew Turk
matthewturk at gmail.com
Tue Oct 26 16:22:10 PDT 2010
Looks like yt doesn't understand your units. It should understand all
the units in Enzo 2.0, so if you could off-list send me your parameter
file that'd be great. I think what's probably happening is that it's
a dark matter only simulation, but since yt relies on the DensityCGS
conversion factor Enzo provides to convert code density (which
particles are stored in) to CGS density, it doesn't know how to deal
since Enzo provides no explicit Density conversion factor.
-Matt
On Tue, Oct 26, 2010 at 4:13 PM, Elizabeth Tasker <taskere at mcmaster.ca> wrote:
> More, yet different hatred:
>
> I now get:
>
>
>
>
> KeyError Traceback (most recent call last)
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/scripts/iyt in <module>()
> 22
> 23 #pc.add_profile_object(data, ["Radius", "Dark_Matter_Density"])
> ---> 24 pc.add_profile_object(data, ["Radius", "particle_density"])
> 25
> 26 pc.save(fn) # save all plots
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/raven/plot_collection.py in
> add_profile_object(self, data_source, fields, weight, accumulation, x_bins,
> x_log, x_bounds, lazy_reader, id, figure, axes)
> 808 lazy_reader)
> 809 if len(fields) > 1:
> --> 810 profile.add_fields(fields[1], weight=weight,
> accumulation=accumulation)
> 811 if id is None: id = self._get_new_id()
> 812 p = self._add_plot(PlotTypes.Profile1DPlot(profile, fields,
> id,
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/Profiles.py in add_fields(self,
> fields, weight, accumulation, fractional)
> 136 fields = ensure_list(fields)
> 137 if self._lazy_reader:
> --> 138 self._lazy_add_fields(fields, weight, accumulation)
> 139 else:
> 140 self._unlazy_add_fields(fields, weight, accumulation)
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/Profiles.py in
> _lazy_add_fields(self, fields, weight, accumulation)
> 95 # We get back field values, weight values, used bins
> 96 f, w, u = self._bin_field(grid, field, weight,
> accumulation,
> ---> 97 args=args, check_cut=True)
> 98 self.__data[field] += f # running total
> 99 self.__weight_data[field] += w # running total
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/Profiles.py in save_state(*args,
> **kwargs)
> 45 old_params = source.field_parameters
> 46 source.field_parameters =
> prof._data_source.field_parameters
> ---> 47 tr = func(*args, **kwargs)
> 48 source.field_parameters = old_params
> 49 else:
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/Profiles.py in _bin_field(self,
> source, field, weight, accumulation, args, check_cut)
> 232 # check_cut is set if source != self._data_source
> 233 # (i.e., lazy_reader)
> --> 234 source_data = self._get_field(source, field, check_cut)[mi]
> 235 if weight: weight_data = self._get_field(source, weight,
> check_cut)[mi]
> 236 binned_field = self._get_empty_field()
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/Profiles.py in _get_field(self,
> source, this_field, check_cut)
> 172 else:
> 173 pointI =
> self._data_source._get_point_indices(source)
> --> 174
> data.append(source[field][pointI].ravel().astype('float64'))
> 175 return na.concatenate(data, axis=0)
> 176
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/BaseGridType.py in
> __getitem__(self, key)
> 136 """
> 137 if not self.data.has_key(key):
> --> 138 self.get_data(key)
> 139 return self.data[key]
> 140
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/BaseGridType.py in
> get_data(self, field)
> 179 else: raise
> 180 else:
> --> 181 self._generate_field(field)
> 182 return self.data[field]
> 183
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/BaseGridType.py in
> _generate_field(self, field)
> 124 self[field] = temp_array[sl]
> 125 else:
> --> 126 self[field] = self.pf.field_info[field](self)
> 127 else: # Can't find the field, try as it might
> 128 raise exceptions.KeyError, field
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/field_info_container.py in
> __call__(self, data)
> 317 original_fields = data.keys() # Copy
> 318 dd = self._function(self, data)
> --> 319 dd *= self._convert_function(data)
> 320 for field_name in data.keys():
> 321 if field_name not in original_fields:
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/UniversalFields.py in
> _convertDensity(data)
> 780
> 781 def _convertDensity(data):
> --> 782 return data.convert("Density")
> 783 def _pdensity_pyx(field, data):
> 784 blank = na.zeros(data.ActiveDimensions, dtype='float32')
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/BaseGridType.py in convert(self,
> datatype)
> 101 It either returns the multiplicative factor or throws a
> KeyError.
> 102 """
> --> 103 return self.pf[datatype]
> 104
> 105 def __repr__(self):
>
> /1/home/taskere/yt_hg/yt/src/yt-hg/yt/lagos/OutputTypes.py in
> __getitem__(self, key)
> 108 self.conversion_factors]:
> 109 if key in d: return d[key]
> --> 110 raise KeyError(key)
> 111
> 112 def keys(self):
>
> KeyError: 'Density'
> WARNING: Failure executing file: <slice.py>
> WARNING: Readline services not available on this platform.
> WARNING: The auto-indent feature requires the readline librar
>
>
>
> :\
>
> Elizabeth
>
>
>
>
>
>
> Matthew Turk wrote:
>>
>> Hi Elizabeth,
>>
>> That's a bug; it actually was trying to call the Enzo CIC routines.
>> I've fixed it in the stable branch now.
>>
>> -Matt
>>
>> On Tue, Oct 26, 2010 at 3:09 PM, Elizabeth Tasker <taskere at mcmaster.ca>
>> wrote:
>>
>>>
>>> Sorry, this still isn't working for me.
>>>
>>> I don't have the field dark_matter_density and it hates cloud in cell
>>> too!
>>>
>>> NameError: global name 'cic_deposit' is not defined
>>>
>>> Elizabeth
>>>
>>>
>>> Matthew Turk wrote:
>>>
>>>>
>>>> Hi Elizabeth,
>>>>
>>>> Here's a script that does it; you can get this with "yt_lodgeit.py
>>>> --download=1294".
>>>>
>>>> http://paste.enzotools.org/show/1294/
>>>>
>>>> Also, on re-reading your initial question, my initial suggestion of
>>>> adding a profile using "ParticleRadius" and "ParticleMassMsun" *will*
>>>> function, but it's not what you wanted.
>>>>
>>>> Best,
>>>>
>>>> Matt
>>>>
>>>> On Tue, Oct 26, 2010 at 8:08 AM, Elizabeth Tasker <taskere at mcmaster.ca>
>>>> wrote:
>>>>
>>>>
>>>>>
>>>>> Hi Christine and Matt,
>>>>>
>>>>> Unfortunately, I don't have a Dark_Matter_Density field, just the
>>>>> position,
>>>>> velocities, type, mass and index. (From looking directly at the
>>>>> contents
>>>>> of
>>>>> XXXX.cpu0000).
>>>>>
>>>>> I'm afraid I also need my hand held more to use Matt's suggestion!
>>>>> Would
>>>>> it
>>>>> be possible to give me an example of how to call those functions? I
>>>>> tried
>>>>> to
>>>>> guess and failed miserably.
>>>>>
>>>>> Thank you~
>>>>>
>>>>> Elizabeth
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Matthew Turk wrote:
>>>>>
>>>>>
>>>>>>
>>>>>> Hi Elizabeth,
>>>>>>
>>>>>> It should be. You can either do the CIC deposited DM density using
>>>>>> the field "particle_density_pyx" (
>>>>>> http://yt.enzotools.org/doc/api/field_list.html#particle-density-pyx )
>>>>>> if you're on the 'stable' branch of the field "particle_density" if
>>>>>> you're on the current development trunk. That will convert the DM to
>>>>>> be like a baryon quantity.
>>>>>>
>>>>>> If you'd rather do raw particle binning, there is also functionality
>>>>>> for that by using the x field "ParticleRadius" (
>>>>>> http://yt.enzotools.org/doc/api/field_list.html#particleradius ) or
>>>>>> one of its derivatives, and the y field "ParticleMassMsun".
>>>>>>
>>>>>> -Matt
>>>>>>
>>>>>> On Mon, Oct 25, 2010 at 5:27 PM, Elizabeth Tasker
>>>>>> <taskere at mcmaster.ca>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'd like to plot dark matter particle density as a function of radius
>>>>>>> for
>>>>>>> my
>>>>>>> particle-only simulation. Can I use add_profile_sphere, but for
>>>>>>> particles
>>>>>>> rather than gas? I only have a single halo and I know the halo it's
>>>>>>> centred
>>>>>>> in the middle of my box (or it better be, since I put it there!).
>>>>>>>
>>>>>>> Is this possible?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Elizabeth
>>>>>>> _______________________________________________
>>>>>>> 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
>
More information about the yt-users
mailing list