Hi Steffen,
This is, funnily enough, two problems.
The one for yt stats is actually just telling you that it wanted to do
something with the Density, but you have an N-body only calculation,
so it can't. I've made this conditional.
The second issue is that of units. Right now the Nyx units are a bit
uncertain and unknown to yt, so I have erred on the side of failing
rather than returning bad data. I think that you should be able to
project "particle_mass_density" without trouble. Today and early next
week, in a weird coincidence, was when we were supposed to work on
units for this frontend; I'll keep you in the loop on that. The
ticket I was going to keep track of this with is here:
http://hg.enzotools.org/yt/issue/281/nyx-units-are-incorrect
If you wouldn't mind, it'd be very helpful if you could fill in a bit
about what you know -- from a pragmatic point of view -- about the
units in that ticket.
Thanks,
Matt
On Fri, Jun 10, 2011 at 1:32 AM, Steffen Klemer
Hey,
I'm trying to access die derived field "particle_density" via the following script:
from yt.mods import *
pf = load('plt00000') my_sphere = pf.h.sphere([0,0,0], 1000.0/pf['kpc']) print my_sphere["particle_density"]
Result: http://pastebin.com/Hukh7ahB
The data is from a pure nbody Castro run and contains no "Density"-Field in the output.
Like this:
gurke: ~/castro/runs/test_my_ic > yt stats plt00000 yt : [WARNING ] 2011-06-10 10:29:56,591 Setting 1.0 in code units to be 1.0 cm yt : [WARNING ] 2011-06-10 10:29:56,591 No time units. Setting 1.0 = 1 second. yt : [INFO ] 2011-06-10 10:29:56,592 Parameters: current_time = 0.0 yt : [INFO ] 2011-06-10 10:29:56,592 Parameters: domain_dimensions = [64, 64, 64] yt : [INFO ] 2011-06-10 10:29:56,592 Parameters: domain_left_edge = [ 0. 0. 0.] yt : [INFO ] 2011-06-10 10:29:56,592 Parameters: domain_right_edge = [ 90. 90. 90.] yt : [INFO ] 2011-06-10 10:29:56,593 Parameters: cosmological_simulation = 0.0 yt : [INFO ] 2011-06-10 10:29:56,598 Adding particle_count to list of fields yt : [INFO ] 2011-06-10 10:29:56,598 Adding particle_mass_density to list of fields Warning: invalid value encountered in sqrt Warning: divide by zero encountered in divide Warning: divide by zero encountered in divide Warning: invalid value encountered in sqrt level # grids # cells --------------------------- 0 8 262144 ---------------------------- 8 262144
t = 0.00000000e+00 = 0.00000000e+00 s = 0.00000000e+00 years
Smallest Cell: Width: 4.557e-25 mpc Width: 4.557e-22 kpc Width: 4.557e-19 pc Width: 9.402e-14 au Width: 2.022e-11 rsun Width: 8.736e-06 miles Width: 1.562e-02 unitary Width: 1.406e+00 1 Width: 1.406e+00 cm Traceback (most recent call last): File "/home/sklemer/yt/yt-x86_64/bin/yt", line 9, in <module> load_entry_point('yt==2.1dev', 'console_scripts', 'yt')() File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/command_line.py", line 1061, in run_main sys.exit(YT.main()) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/cmdln.py", line 257, in main return self.cmd(args) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/cmdln.py", line 280, in cmd retval = self.onecmd(argv) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/cmdln.py", line 412, in onecmd return self._dispatch_cmd(handler, argv) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/cmdln.py", line 1100, in _dispatch_cmd return handler(argv[0], opts, *args) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/command_line.py", line 224, in arg_iterate func(self, subcmd, opts, arg) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/utilities/command_line.py", line 535, in do_stats v, c = pf.h.find_max("Density") File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/object_finding_mixin.py", line 55, in find_max mg, mc, mv, pos = self.find_max_cell_location(field, finest_levels) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/object_finding_mixin.py", line 68, in find_max_cell_location source.quantities["MaxLocation"]( field, lazy_reader=True) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/derived_quantities.py", line 91, in __call__ return self._call_func_lazy(args, kwargs) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/derived_quantities.py", line 98, in _call_func_lazy rv = self.func(GridChildMaskWrapper(g, self._data_source), *args, **kwargs) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/derived_quantities.py", line 603, in _MaxLocation if data[field].size > 0: File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/derived_quantities.py", line 60, in __getitem__ data = self.data_source._get_data_from_grid(self.grid, item) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 73, in save_state tr = func(self, grid, field) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 2313, in _get_data_from_grid if grid[field].size == 1: # dx, dy, dz, cellvolume File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 147, in __getitem__ self.get_data(key) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 190, in get_data self._generate_field(field) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 135, in _generate_field self[field] = self.pf.field_info[field](self) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/field_info_container.py", line 309, in __call__ dd = self._function(self, data) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/frontends/castro/fields.py", line 84, in <lambda> add_field(theirs, function=lambda a, b: b[mine], take_log=True) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 147, in __getitem__ self.get_data(key) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 190, in get_data self._generate_field(field) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.py", line 125, in _generate_field self.pf.field_info[field].check_available(self) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/field_info_container.py", line 276, in check_available validator(data) File "/home/sklemer/yt/yt-x86_64/src/yt-hg/yt/data_objects/field_info_container.py", line 374, in __call__ raise NeedsDataField(doesnt_have) yt.data_objects.field_info_container.NeedsDataField: (['density'])
Or here like this:
In [27]: pf.keys() Out[27]: ['miles', 'rsun', 'mpc', 'cm', 'unitary', '1', 'pc', 'kpc', 'au', '1', 'days', 'years', 'DualEnergyFormalism', 'cosmology_calculator', 'TopGridDimensions', 'CosmologyHubbleConstantNow', 'TopGridRank', 'CosmologyOmegaLambdaNow', 'Time', 'HydroMethod', 'CosmologyOmegaMatterNow', 'EOSType', 'particle_velocity_z', 'particle_position_z', 'particle_position_x', 'particle_position_y', 'particle_mass', 'particle_velocity_x', 'particle_velocity_y']
bye /Steffen
PS: Sorry for not using the yt-pastebin script but the lodge_it script seems to not work via the http proxy from my mashine.
-- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments _______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org