[yt-dev] Issue #1163: particle angular momentum profile error (yt_analysis/yt)
Anonymous
issues-reply at bitbucket.org
Wed Jan 27 11:33:45 PST 2016
New issue 1163: particle angular momentum profile error
https://bitbucket.org/yt_analysis/yt/issues/1163/particle-angular-momentum-profile-error
Anonymous:
Hi yt developer
I wrote the following script to compute the particle angular momentum
===============================
import matplotlib as matplotlib
matplotlib.use('Agg')
import yt
import yt.units as units
import numpy as np
import matplotlib.pyplot as plt
def _partradiuspc(field, data):
return data[('all','particle_radius')].in_units('pc')
yt.add_field('partradiuspc', function=_partradiuspc,
particle_type=True, units="pc")
index = 45
Nbin= 100
rmax = 3000
ds = yt.load("../DD%04d/DD%04d" % (index,index))
ds.index
ad= ds.all_data()
center = ds.find_max(("gas", "density"))[1]
rmin = max([1.0e-3,2.0*ds.index.get_smallest_dx().in_units('pc')])
sphere = ds.sphere(center, rmax*units.pc)
bulk_velocity = sphere.quantities['BulkVelocity']()
sphere.set_field_parameter('bulk_velocity', bulk_velocity)
profile = yt.Profile1D(sphere, 'partradiuspc', Nbin, x_min=rmin,
x_max=rmax, x_log=True, weight_field=None)
profile.add_fields(('all', 'particle_angular_momentum_x'))
profile.add_fields(('all', 'particle_angular_momentum_y'))
profile.add_fields(('all', 'particle_angular_momentum_z'))
PartAngularMomentum = np.sqrt(profile[('all', 'particle_angular_momentum_x')]**2
+ profile[('all',
'particle_angular_momentum_y')]**2
+ profile[('all',
'particle_angular_momentum_z')]**2)
plt.plot(profile.x, PartAngularMomentum, label='Total',linestyle="-",color='r')
plt.xlabel('r [pc]')
plt.ylabel('pang')
===================================
And, I got the following error message
………………
Traceback (most recent call last):
File "pang.py", line 26, in <module>
profile = yt.Profile1D(sphere, 'partradiuspc', Nbin, x_min=rmin,
x_max=rmax, x_log=True, weight_field=None)
File "/home/jhchoi/common/src/yt/yt/data_objects/profiles.py", line
411, in __init__
self.x_field = data_source._determine_fields(x_field)[0]
File "/home/jhchoi/common/src/yt/yt/data_objects/data_containers.py",
line 1001, in _determine_fields
raise YTFieldNotFound((ftype,fname),self.ds)
yt.utilities.exceptions.YTFieldNotFound: Could not find field '('all',
'partradiuspc')' in DD0045.
If I remove "particle_type=True" in add_field, it works.
However, I am not sure that removing "particle_type=True" return correct output.
Thank you,
Junhwan
More information about the yt-dev
mailing list