[yt-users] Particle Angular momentum Profiles
Jun-Hwan Choi
jhchoi at pa.uky.edu
Tue Oct 23 12:25:18 PDT 2012
Thank you,
It works after I weight particlemass for Angular momentum profile as follow:
>
profile.add_fields('ParticleSpecificAngularMomentumZ',weight='ParticleMass')
(If I omit the weight field, it crashed because it assume
weight='CellMassMsun'
Is ParticleMass a general weight field for Particles like CellMass?
Is there any other suggested field?
Thank you,
Junhwan
On 10/23/12 11:25, Matthew Turk wrote:
> 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
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
--
--------------------------------------------------------------
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
--------------------------------------------------------------
More information about the yt-users
mailing list