[yt-users] strange error with StarMassMsun
John Wise
jwise at physics.gatech.edu
Sun Feb 16 17:00:34 PST 2014
Hi Geoffrey,
This will happen if you're running with 32-bit precision in Enzo, and
the particle fields except for position will be in 32-bit. However, the
CICDeposit3 routine expects 64-bit floats as input. I've created a pull
request that fixes this bug.
https://bitbucket.org/yt_analysis/yt/pull-request/706/input-enzo-deposited-fields-should-be/diff
You can go ahead and test it by pulling my changeset and recompiling.
hg pull -r f9127d6 https://bitbucket.org/jwise77/yt
hg up
Please see if this works for you and comment on the PR page.
Cheers,
John
On 02/14/2014 05:12 PM, Geoffrey So wrote:
> I'm getting a strange error when executing the command
>
> starmass = ell.quantities['TotalQuantity']('StarMassMsun')[0]
>
> This is on Stampede, and on my laptop running OSX I did not get the same
> error. Has anyone else seen something similar?
>
> From
> G.S.
>
> In [100]: ell.quantities['TotalQuantity']('StarMassMsun')
> ---------------------------------------------------------------------------
> ValueError Traceback (most recent call last)
> /home1/01041/tg802953/dev-yt/src/yt-hg/scripts/iyt in <module>()
> ----> 1 ell.quantities['TotalQuantity']('StarMassMsun')
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/derived_quantities.pyc
> in __call__(self, *args, **kwargs)
> 80 self._data_source.pf.h.io
> <http://data_source.pf.h.io>)
> 81 if lazy_reader and not self.force_unlazy:
> ---> 82 return self._call_func_lazy(args, kwargs)
> 83 else:
> 84 return self._call_func_unlazy(args, kwargs)
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/derived_quantities.pyc
> in _call_func_lazy(self, args, kwargs)
> 87 self.retvals = [ [] for i in range(self.n_ret)]
> 88 for gi,g in enumerate(self._get_grids()):
> ---> 89 rv = self.func(GridChildMaskWrapper(g,
> self._data_source), *args, **kwargs)
> 90 if not iterable(rv): rv = (rv,)
> 91 for i in range(self.n_ret):
> self.retvals[i].append(rv[i])
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/derived_quantities.pyc
> in _TotalQuantity(data, fields)
> 703 totals = []
> 704 for field in fields:
> --> 705 if data[field].size < 1:
> 706 totals.append(0.0)
> 707 continue
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/derived_quantities.pyc
> in __getitem__(self, item)
> 48 def __getitem__(self, item):
> 49 if item not in self.local_cache:
> ---> 50 data =
> self.data_source._get_data_from_grid(self.grid, item)
> 51 self.local_cache[item] = data
> 52 return self.local_cache[item]
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/data_containers.pyc
> in save_state(self, grid, field, *args, **kwargs)
> 79 old_keys = grid.field_data.keys()
> 80 grid.field_parameters = self.field_parameters
> ---> 81 tr = func(self, grid, field, *args, **kwargs)
> 82 grid.field_parameters = old_params
> 83 grid.field_data = YTFieldData( [(k, grid.field_data[k])
> for k in old_keys] )
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/data_containers.pyc
> in _get_data_from_grid(self, grid, field)
> 2644 return np.array([f[i,:][pointI] for i in range(3)])
> 2645 else:
> -> 2646 tr = grid[field]
> 2647 if tr.size == 1: # dx, dy, dz, cellvolume
> 2648 tr = tr * np.ones(grid.ActiveDimensions,
> dtype='float64')
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> __getitem__(self, key)
> 145 """
> 146 if key not in self.field_data:
> --> 147 self.get_data(key)
> 148 return self.field_data[key]
> 149
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> get_data(self, field, convert)
> 188 else: raise
> 189 else:
> --> 190 self._generate_field(field)
> 191 return self.field_data[field]
> 192
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> _generate_field(self, field)
> 133 self[field] = temp_array[sl]
> 134 else:
> --> 135 self[field] = self.pf.field_info[field](self)
> 136 else: # Can't find the field, try as it might
> 137 raise exceptions.KeyError(field)
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/field_info_container.pyc
> in __call__(self, data)
> 383 ii = self.check_available(data)
> 384 original_fields = data.keys() # Copy
> --> 385 dd = self._function(self, data)
> 386 dd *= self._convert_function(data)
> 387 for field_name in data.keys():
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/universal_fields.pyc
> in _StarMass(field, data)
> 439
> 440 def _StarMass(field,data):
> --> 441 return data["star_density"] * data["CellVolume"]
> 442 add_field("StarMassMsun", units=r"M_{\odot}",
> 443 function=_StarMass,
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> __getitem__(self, key)
> 145 """
> 146 if key not in self.field_data:
> --> 147 self.get_data(key)
> 148 return self.field_data[key]
> 149
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> get_data(self, field, convert)
> 188 else: raise
> 189 else:
> --> 190 self._generate_field(field)
> 191 return self.field_data[field]
> 192
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/grid_patch.pyc in
> _generate_field(self, field)
> 133 self[field] = temp_array[sl]
> 134 else:
> --> 135 self[field] = self.pf.field_info[field](self)
> 136 else: # Can't find the field, try as it might
> 137 raise exceptions.KeyError(field)
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/data_objects/field_info_container.pyc
> in __call__(self, data)
> 383 ii = self.check_available(data)
> 384 original_fields = data.keys() # Copy
> --> 385 dd = self._function(self, data)
> 386 dd *= self._convert_function(data)
> 387 for field_name in data.keys():
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/frontends/enzo/fields.pyc in
> _spdensity(field, data)
> 360 blank,
> np.array(data.LeftEdge).astype(np.float64),
> 361
> np.array(data.ActiveDimensions).astype(np.int32),
> --> 362 np.float64(data['dx']))
> 363 return blank
> 364
>
> /home1/01041/tg802953/dev-yt/src/yt-hg/yt/utilities/lib/CICDeposit.so in
> yt.utilities.lib.CICDeposit.CICDeposit_3
> (yt/utilities/lib/CICDeposit.c:1643)()
>
> ValueError: Buffer dtype mismatch, expected 'float64_t' but got 'float'
>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
--
John Wise
Assistant Professor of Physics
Center for Relativistic Astrophysics, Georgia Tech
http://cosmo.gatech.edu
More information about the yt-users
mailing list