[yt-users] ghost zone validator issue.
Andrew Cunningham
ajc4 at pas.rochester.edu
Fri Sep 20 20:14:46 PDT 2013
I'm trying to compute d/dx(gravitational-potential) following the
divergence of velocity cookbook recepie in the trunk version of yt-2.5.
However, when I do this the data reader tries to read past the end of the
dataset in the chombo file. Do others see similar behavior with output
from other codes or do I have a chombo-specific issue here?
# computes unlimited centered difference
def unlimited(right,center,left):
return 0.5*(right-left)
def _Gx(field, data):
sl_left = slice(None,-2,None)
sl_right = slice(2,None,None)
ds = data['dx'].flat[0]
out = np.zeros(data['gravitational-potential'].shape, dtype='float64')
out[1:-1,1:-1,1:-1] =
-unlimited(data['gravitational-potential'][sl_right,1:-1,1:-1],data['gravitational-potential'][1:-1,1:-1,1:-1],data['gravitational-potential'][sl_left
,1:-1,1:-1])/ds
return out
add_field('Gx', function=_Gx,
validators=[ValidateSpatial(ghost_zones=1,fields=['gravitational-potential'])],
take_log=False)
Traceback (most recent call last):
File "GradPhy.py", line 48, in <module>
off = OffAxisSlicePlot(pf, [0,0,1], "Gx", center=center, width=(1000,
"au"))
File "/home/acunning/yt/yt/visualization/plot_window.py", line 1454, in
__init__
oblique=True, fontsize=fontsize)
File "/home/acunning/yt/yt/visualization/plot_window.py", line 784, in
__init__
PWViewer.__init__(self, *args, **kwargs)
File "/home/acunning/yt/yt/visualization/plot_window.py", line 591, in
__init__
PlotWindow.__init__(self, *args,**kwargs)
File "/home/acunning/yt/yt/visualization/plot_window.py", line 307, in
__init__
self.set_window(bounds) # this automatically updates the data and plot
File "/home/acunning/yt/yt/visualization/plot_window.py", line 76, in
newfunc
args[0]._recreate_frb()
File "/home/acunning/yt/yt/visualization/plot_window.py", line 359, in
_recreate_frb
self._frb._get_data_source_fields()
File "/home/acunning/yt/yt/visualization/fixed_resolution.py", line 138,
in _get_data_source_fields
self[f]
File "/home/acunning/yt/yt/visualization/fixed_resolution.py", line 424,
in __getitem__
self.data_source[item],
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 318,
in __getitem__
self.get_data(key)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 845,
in get_data
if self._generate_field(field):
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 345,
in _generate_field
self._generate_field_in_grids(field, ngt_exception.ghost_zones)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 355,
in _generate_field_in_grids
grid[field] = self.__touch_grid_field(grid, field)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 81, in
save_state
tr = func(self, grid, field, *args, **kwargs)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 359,
in __touch_grid_field
return grid[field]
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 147, in
__getitem__
self.get_data(key)
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 190, in
get_data
self._generate_field(field)
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 130, in
_generate_field
gz_grid = self.retrieve_ghost_zones(n_gz, f_gz, smoothed=True)
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 467, in
retrieve_ghost_zones
level, new_left_edge, **kwargs)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3856,
in __init__
AMRCoveringGridBase.__init__(self, *args, **kwargs)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3700,
in __init__
self._refresh_data()
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3717,
in _refresh_data
AMR3DData._refresh_data(self)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 306,
in _refresh_data
self.get_data()
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3909,
in get_data
self._get_data_from_grid(grid, fields_to_get)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 96, in
save_state
tr = func(self, grid, field, *args, **kwargs)
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3970,
in _get_data_from_grid
else gf for gf in (grid[field] for field in fields)]
File "/home/acunning/yt/yt/data_objects/data_containers.py", line 3970,
in <genexpr>
else gf for gf in (grid[field] for field in fields)]
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 147, in
__getitem__
self.get_data(key)
File "/home/acunning/yt/yt/data_objects/grid_patch.py", line 180, in
get_data
temp = self.hierarchy.io.pop(self, field)
File "/home/acunning/yt/yt/utilities/io_handler.py", line 53, in pop
return self._read_data_set(grid, field)
File "/home/acunning/yt/yt/utilities/io_handler.py", line 82, in
_read_data_set
return self._read_data(grid, field)
File "/home/acunning/yt/yt/frontends/chombo/io.py", line 62, in
_read_data
data = lev[self._data_string][start:stop]
File
"/usr/lib64/python2.6/site-packages/h5py-1.3.1-py2.6-linux-x86_64.egg/h5py/highlevel.py",
line 1207, in __getitem__
selection = sel.select(self.shape, args, dsid=self.id)
File
"/usr/lib64/python2.6/site-packages/h5py-1.3.1-py2.6-linux-x86_64.egg/h5py/selections.py",
line 94, in select
sel[args]
File
"/usr/lib64/python2.6/site-packages/h5py-1.3.1-py2.6-linux-x86_64.egg/h5py/selections.py",
line 261, in __getitem__
start, count, step, scalar = _handle_simple(self.shape,args)
File
"/usr/lib64/python2.6/site-packages/h5py-1.3.1-py2.6-linux-x86_64.egg/h5py/selections.py",
line 512, in _handle_simple
x,y,z = _translate_slice(arg, length)
File
"/usr/lib64/python2.6/site-packages/h5py-1.3.1-py2.6-linux-x86_64.egg/h5py/selections.py",
line 562, in _translate_slice
raise ValueError("Start index %s out of range (0-%d)" % (start,
length-1))
ValueError: Start index 10665984 out of range (0-10665983)
More information about the yt-users
mailing list