[yt-users] yt.utilities.amr_utils

Renyue Cen cen at astro.princeton.edu
Sun Jan 13 12:31:07 PST 2013


Hi Matt,

This field (SFRdensity) was defined before the
pf = ...
statement, along with some other simpler definitions of gas variables that did not require CIC
and seem to work. 

Was I using the wrong syntax or something?

Renyue

On Jan 13, 2013, at 3:25 PM, Matthew Turk wrote:

> Hi Renyue,
> 
> One important thing to note is that the field has to be added before
> you instantiate the parameter file; i.e., you must do:
> 
> add_field( ... )
> pf = ...
> 
> because the parameter file, upon creation of the hierarchy, performs
> an auto-detection step.  This auto-detection step determines which
> fields are available based on their dependencies.
> 
> -Matt
> 
> On Sun, Jan 13, 2013 at 3:22 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>> Hi Matt,
>> 
>> It seems that my attempt to reuse "star_density" for a subset of stars does not work:
>> "star_density" remains the density of all stars when plotted.
>> But I also failed to redefine a new density that is called "SFRdensity" and feed it to AMRKDTree which is in turn
>> fed to camera to volume render. Here is what I did:
>> 
>> def _convertDensity(data):
>>    return data.convert("Density")
>> def _SFRdensity(field, data):
>>    blank = na.zeros(data.ActiveDimensions, dtype='float32')
>>    if data.NumberOfParticles == 0: return blank
>> #   filter  = data.pf.time_units['years']*(data.pf.current_time - data['creation_time']) < 1.e8
>>    filter  = data.pf.time_units['years']*(data.pf.current_time - data['creation_time']) < 1.e6
>>    if not filter.any(): return blank
>>    amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(na.float64),
>>                           data["particle_position_y"][filter].astype(na.float64),
>>                           data["particle_position_z"][filter].astype(na.float64),
>>                           data["particle_mass"][filter].astype(na.float32),
>>                           na.int64(na.where(filter)[0].size),
>>                           blank, na.array(data.LeftEdge).astype(na.float64),
>>                           na.array(data.ActiveDimensions).astype(na.int32),
>>                           na.float64(data['dx']))
>>    return blank
>> add_field("SFRdensity", function=_SFRdensity,
>>          validators=[ValidateSpatial(0)], convert_function=_convertDensity)
>> 
>>    volume3 = AMRKDTree(pf, fields=["SFRdensity"]
>>               ,no_ghost=False, tree_type="domain"
>>               ,le=c-0.5*WW, re=c+0.5*WW)
>>    cam = pf.h.camera(c, L, W, (Nvec,Nvec), tf3, volume=volume3, no_ghost=False,log_fields=None
>>                  ,north_vector=dir)
>> 
>> 
>> with the following error message:
>> 
>> Traceback (most recent call last):
>>  File "SFR.py", line 393, in <module>
>>    ,le=c-0.5*WW, re=c+0.5*WW)
>>  File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/utilities/amr_kdtree/amr_kdtree.py", line 316, in __init__
>>    for field in self.fields]
>>  File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 71, in __missing__
>>    return self.fallback[key]
>>  File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 71, in __missing__
>>    return self.fallback[key]
>>  File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 70, in __missing__
>>    raise KeyError("No field named %s" % key)
>> KeyError: 'No field named SFRdensity'
>> 
>> 
>> So I must be doing something wrong with defining the SFRdensity field.
>> 
>> Thanks very much,
>> Renyue
>> 
>> 
>> On Jan 13, 2013, at 1:20 PM, Matthew Turk wrote:
>> 
>>> Hi Renyue,
>>> 
>>> The module amr_utils became lib a while back.  But my guess is that
>>> you probably don't need to import it anyway, unless you are explicitly
>>> using one of the routines it provides.
>>> 
>>> -Matt
>>> 
>>> On Sun, Jan 13, 2013 at 12:18 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>>>> Hi,
>>>> 
>>>> I am trying to compute gridded density of some subset of particles.
>>>> So I tried to import some modules first in the python script as follows:
>>>> 
>>>> from yt.data_objects.field_info_container import \
>>>>   FieldInfoContainer, \
>>>>   NullFunc, \
>>>>   TranslationFunc, \
>>>>   FieldInfo, \
>>>>   ValidateParameter, \
>>>>   ValidateDataField, \
>>>>   ValidateProperty, \
>>>>   ValidateSpatial, \
>>>>   ValidateGridType
>>>> import yt.data_objects.universal_fields
>>>> from yt.utilities.physical_constants import mh
>>>> from yt.funcs import *
>>>> import yt.utilities.amr_utils as amr_utils
>>>> 
>>>> 
>>>> But I got this error message:
>>>> 
>>>> Traceback (most recent call last):
>>>> File "SFR.py", line 28, in <module>
>>>>   import yt.utilities.amr_utils as amr_utils
>>>> ImportError: No module named amr_utils
>>>> 
>>>> 
>>>> Am I doing something wrong?
>>>> 
>>>> Thanks,
>>>> Renyue
>> 




More information about the yt-users mailing list