<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>I would like to compute some spacial derivatives for FLASH4 2D cylindrical uniform grid datafile with YT. </div><div><br></div><div>For simplicity, I tried the example given in YT docs, although I know the derivative form is only valid for Cartesian, and this is just for code test purposes. My script are:</div><div><br></div><div><div><font face="DejaVu LGC Sans Mono">@derived_field(name='DivV')  # I do not use ValidateSpatial… ghost_zone… because the ghost cells are not stored in FLSAH check point file</font></div><div><font face="DejaVu LGC Sans Mono"><br></font></div><div><font face="DejaVu LGC Sans Mono">def DivV(field, data):</font></div><div><font face="DejaVu LGC Sans Mono"><br></font></div><div><font face="DejaVu LGC Sans Mono">        sl_left = slice(None,-2)</font></div><div><font face="DejaVu LGC Sans Mono">        sl_right = slice(2,None)</font></div><div><font face="DejaVu LGC Sans Mono">        div_fac = 2.0</font></div><div><font face="DejaVu LGC Sans Mono"><br></font></div><div><font face="DejaVu LGC Sans Mono">        ds = div_fac * data['dx'].flat[0]</font></div><div><font face="DejaVu LGC Sans Mono">        f  = data["velx"][sl_right,1:-1]/ds</font></div><div><font face="DejaVu LGC Sans Mono">        f -= data["vely"][sl_left ,1:-1]/ds</font></div><div><font face="DejaVu LGC Sans Mono">        </font></div><div><font face="DejaVu LGC Sans Mono">        ds = div_fac * data['dy'].flat[0]</font></div><div><font face="DejaVu LGC Sans Mono">        f += data["velx"][1:-1,sl_right]/ds</font></div><div><font face="DejaVu LGC Sans Mono">        f -= data["vely"][1:-1,sl_left]/ds</font></div><div><font face="DejaVu LGC Sans Mono">        </font></div><div><font face="DejaVu LGC Sans Mono">        new_field = na.zeros(data["velx"].shape, dtype='float64')</font></div><div><font face="DejaVu LGC Sans Mono">        new_field[1:-1,1:-1] = f</font></div><div><font face="DejaVu LGC Sans Mono">        </font></div><div><font face="DejaVu LGC Sans Mono">        return new_field</font></div></div><div><br></div><div>Then, if I add:</div><div><br></div><div><font face="DejaVu LGC Sans Mono">pf = load('relax_hdf5_chk_0001')</font></div><div><font face="DejaVu LGC Sans Mono">pf.h.find_max('DivV')</font></div><div><br></div><div>The script works, but if I use:</div><div><br></div><div><div><font face="DejaVu LGC Sans Mono">dd = pf.h.all_data()</font></div><div><font face="DejaVu LGC Sans Mono">print dd['DivV'].sum()</font></div></div><div><br></div><div>and it will give error:</div><div><br></div><div><div><font face="DejaVu LGC Sans Mono">yt : [INFO     ] 2013-01-23 21:17:01,551 Getting field dx from 256</font></div><div><font face="DejaVu LGC Sans Mono">yt : [INFO     ] 2013-01-23 21:17:01,625 Getting field velx from 256</font></div><div><font face="DejaVu LGC Sans Mono">Traceback (most recent call last):</font></div><div><font face="DejaVu LGC Sans Mono">  File "test.py", line 28, in <module></font></div><div><font face="DejaVu LGC Sans Mono">    print dd['DivV'].sum()</font></div><div><font face="DejaVu LGC Sans Mono">  File "/usr/local/yt-i386/src/yt-hg/yt/data_objects/data_containers.py", line 330, in __getitem__</font></div><div><font face="DejaVu LGC Sans Mono">    self.get_data(key)</font></div><div><font face="DejaVu LGC Sans Mono">  File "/usr/local/yt-i386/src/yt-hg/yt/data_objects/data_containers.py", line 2607, in get_data</font></div><div><font face="DejaVu LGC Sans Mono">    if self._generate_field(field):</font></div><div><font face="DejaVu LGC Sans Mono">  File "/usr/local/yt-i386/src/yt-hg/yt/data_objects/data_containers.py", line 360, in _generate_field</font></div><div><font face="DejaVu LGC Sans Mono">    self[field] = self.pf.field_info[field](self)</font></div><div><font face="DejaVu LGC Sans Mono">  File "/usr/local/yt-i386/src/yt-hg/yt/data_objects/field_info_container.py", line 378, in __call__</font></div><div><font face="DejaVu LGC Sans Mono">    dd = self._function(self, data)</font></div><div><font face="DejaVu LGC Sans Mono">  File "test.py", line 11, in DivV</font></div><div><font face="DejaVu LGC Sans Mono">    f  = data["velx"][sl_right,1:-1]/ds</font></div><div><font face="DejaVu LGC Sans Mono">IndexError: too many indices</font></div></div><div><br></div><div>Nor can I make slice plot for this field.</div><div><br></div><div>I would appreciate your suggestions for this issue.</div><div><br></div><div>Best wishes,</div><div>Suoqing</div></body></html>