[yt-users] yt.utilities.amr_utils
Matthew Turk
matthewturk at gmail.com
Sun Jan 13 12:25:16 PST 2013
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