[yt-users] Particle Angular momentum Profiles
Matthew Turk
matthewturk at gmail.com
Tue Oct 23 08:25:47 PDT 2012
Hi Jun-Hwan,
What's happening is that the particles are being binned according to a
fluid field -- "RadiuspcXY" in this case. You have to bin them by a
particle field.
On Tue, Oct 23, 2012 at 11:19 AM, Jun-Hwan Choi <jhchoi at pa.uky.edu> wrote:
> Hi
>
> I try to calculate the dark matter angular momentum profile using following
> routine:
>
> #####################################
> import matplotlib.pyplot as plt
> import pylab as pl
>
> def _RadiuspcXY(field, data):
> center = data.get_field_parameter("center")
> DW = data.pf.domain_right_edge - data.pf.domain_left_edge
> radius = na.zeros(data["x"].shape, dtype='float64')
> for i, ax in enumerate('xy'):
> r = na.abs(data[ax] - center[i])
> radius += na.minimum(r, na.abs(DW[i]-r))**2.0
> na.sqrt(radius, radius)
> return radius
If you change this to use "particle_position_x" and
"particle_position_y" it should work. Also:
> def _ConvertRadius(data):
> return data.convert("pc")
> add_field("RadiuspcXY", function=_RadiuspcXY,
> validators=[ValidateParameter("center")],
> convert_function = _ConvertRadius, units=r"\rm{pc}",
> display_name="RadiusXY")
add the argument particle_type=True.
Let us know if that works! :)
-Matt
>
> Nbin = 75
> rdisk = 2000
> hdisk = 10
> pf = load("DD0046/DD0046")
> rmin = 2.0*pf.h.get_smallest_dx()*pf.units['pc']]
> center = pf.h.find_max("Density")[1]
> disk = pf.h.disk(center, [0,0,1], rdisk/pf.units['pc'], hdisk/pf.units['pc']
> )
> profile = BinnedProfile1D(disk, Nbin, "Radiuspc", max(rmin), rdisk,
> log_space=True, lazy_reader=True, end_collect=False)
> profile.add_fields('ParticleSpecificAngularMomentumZ')
> plt.plot(profile['RadiuspcXY'], profile['ParticleSpecificAngularMomentumZ'])
>
> And I got the following error message:
>
> yt : [INFO ] 2012-10-23 11:16:00,124 Parameters: current_time
> = 4.600008999
> yt : [INFO ] 2012-10-23 11:16:00,124 Parameters: domain_dimensions
> = [64 64 64]
> yt : [INFO ] 2012-10-23 11:16:00,125 Parameters: domain_left_edge
> = [ 0. 0. 0.]
> yt : [INFO ] 2012-10-23 11:16:00,125 Parameters: domain_right_edge
> = [ 1. 1. 1.]
> yt : [INFO ] 2012-10-23 11:16:00,126 Parameters: cosmological_simulation
> = 0.0
> yt : [INFO ] 2012-10-23 11:16:00,138 Getting the binary hierarchy
> yt : [INFO ] 2012-10-23 11:16:00,168 Finished with binary hierarchy
> reading
> yt : [INFO ] 2012-10-23 11:16:00,623 Max Value is 1.55814e-16 at
> 0.5001935958862305 0.4999227523803749 0.4994192123413048 in grid
> EnzoGrid_1396 at level 13 (5, 3, 3)
> Traceback (most recent call last):
> File "JprofDM.py", line 51, in <module>
> profile.add_fields('ParticleSpecificAngularMomentumZ')
> File
> "/home/jhchoi/common/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/profiles.py",
> line 168, in add_fields
> self._lazy_add_fields(fields, weight, accumulation)
> File
> "/home/jhchoi/common/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/profiles.py",
> line 108, in _lazy_add_fields
> args=args, check_cut=True)
> File
> "/home/jhchoi/common/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/profiles.py",
> line 55, in save_state
> tr = func(*args, **kwargs)
> File
> "/home/jhchoi/common/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/profiles.py",
> line 275, in _bin_field
> source_data = source_data[mi]
> ValueError: too many boolean indices
>
> What can be the problem?
> I compute the gas Angular momentum by simply change
> ParticleSpecificAngularMomentumZ to SpecificAngularMomentumZ, it works.
> As a result, I suspect the way to handle the particles.
>
> Thanks in advance,
> Junhwan
>
>
> --
> --------------------------------------------------------------
> Jun-Hwan Choi, Ph.D.
> Department of Physics and Astronomy, University of Kentucky
> Tel: (859) 897-6737 Fax: (859) 323-2846
> Email: jhchoi at pa.uky.edu URL: http://www.pa.uky.edu/~jhchoi
> --------------------------------------------------------------
>
> _______________________________________________
> 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