[Yt-svn] yt: interim commit to fix FLASH2 support -- longer-term, will ad...

hg at spacepope.org hg at spacepope.org
Wed Jul 28 19:40:35 PDT 2010


hg Repository: yt
details:   yt/rev/ac2ed81a8084
changeset: 1892:ac2ed81a8084
user:      Matthew Turk <matthewturk at gmail.com>
date:
Wed Jul 28 19:40:30 2010 -0700
description:
interim commit to fix FLASH2 support -- longer-term, will add more data_styles.

diffstat:

 yt/extensions/volume_rendering/grid_partitioner.py |   9 ++++++++-
 yt/lagos/DataReadingFuncs.py                       |   7 ++++---
 yt/lagos/HierarchyType.py                          |  18 ++++++++++++------
 3 files changed, 24 insertions(+), 10 deletions(-)

diffs (93 lines):

diff -r d3fe9dbcfaf3 -r ac2ed81a8084 yt/extensions/volume_rendering/grid_partitioner.py
--- a/yt/extensions/volume_rendering/grid_partitioner.py	Wed Jul 28 10:46:12 2010 -0700
+++ b/yt/extensions/volume_rendering/grid_partitioner.py	Wed Jul 28 19:40:30 2010 -0700
@@ -55,13 +55,17 @@
         self.log_fields = log_fields
 
     def traverse(self, back_point, front_point):
+        mylog.info("Traversing %s bricks between %s and %s",
+                   len(self.bricks), back_point, front_point)
         if self.bricks is None: self.initialize_source()
         vec = front_point - back_point
         dist = na.minimum(
              na.sum((self.brick_left_edges - back_point) * vec, axis=1),
              na.sum((self.brick_right_edges - back_point) * vec, axis=1))
         ind = na.argsort(dist)
-        for b in self.bricks[ind]: yield b
+        for b in self.bricks[ind]:
+            #print b.LeftEdge, b.RightEdge
+            yield b
 
     def _partition_grid(self, grid):
 
@@ -100,6 +104,9 @@
             bricks += self._partition_grid(g)
         pbar.finish()
         bricks = na.array(bricks, dtype='object')
+        self.initialize_bricks(bricks)
+
+    def initialize_bricks(self, bricks):
         NB = len(bricks)
         # Now we set up our (local for now) hierarchy.  Note that to calculate
         # intersection, we only need to do the left edge & right edge.
diff -r d3fe9dbcfaf3 -r ac2ed81a8084 yt/lagos/DataReadingFuncs.py
--- a/yt/lagos/DataReadingFuncs.py	Wed Jul 28 10:46:12 2010 -0700
+++ b/yt/lagos/DataReadingFuncs.py	Wed Jul 28 19:40:30 2010 -0700
@@ -508,11 +508,12 @@
 
     def _read_data_set(self, grid, field):
         f = h5py.File(grid.pf.parameter_filename, "r")
-        return f["/%s" % field][grid.id - grid._id_offset,:,:,:].transpose()
+        tr = f["/%s" % field][grid.id - grid._id_offset,:,:,:].transpose()
+        return tr.astype("float64")
 
     def _read_data_slice(self, grid, field, axis, coord):
         sl = [slice(None), slice(None), slice(None)]
         sl[axis] = slice(coord, coord + 1)
         f = h5py.File(grid.pf.parameter_filename, "r")
-        dd = f["/%s" % field][grid.id - grid._id_offset][sl].transpose()
-        return dd
+        tr = f["/%s" % field][grid.id - grid._id_offset].transpose()[sl]
+        return tr.astype("float64")
diff -r d3fe9dbcfaf3 -r ac2ed81a8084 yt/lagos/HierarchyType.py
--- a/yt/lagos/HierarchyType.py	Wed Jul 28 10:46:12 2010 -0700
+++ b/yt/lagos/HierarchyType.py	Wed Jul 28 19:40:30 2010 -0700
@@ -1447,8 +1447,11 @@
         self.object_types.sort()
 
     def _count_grids(self):
-        self.num_grids = self.parameter_file._find_parameter(
-            "integer", "globalnumblocks", True, self._handle)
+        try:
+            self.num_grids = self.parameter_file._find_parameter(
+                "integer", "globalnumblocks", True, self._handle)
+        except KeyError:
+            self.num_grids = self._handle["/simulation parameters"][0][0]
         
     def _parse_hierarchy(self):
         f = self._handle # shortcut
@@ -1457,9 +1460,13 @@
         self.grid_left_edge[:] = f["/bounding box"][:,:,0]
         self.grid_right_edge[:] = f["/bounding box"][:,:,1]
         # Move this to the parameter file
-        nxb = pf._find_parameter("integer", "nxb", True, f)
-        nyb = pf._find_parameter("integer", "nyb", True, f)
-        nzb = pf._find_parameter("integer", "nzb", True, f)
+        try:
+            nxb = pf._find_parameter("integer", "nxb", True, f)
+            nyb = pf._find_parameter("integer", "nyb", True, f)
+            nzb = pf._find_parameter("integer", "nzb", True, f)
+        except KeyError:
+            nxb, nyb, nzb = [int(f["/simulation parameters"]['n%sb' % ax])
+                              for ax in 'xyz']
         self.grid_dimensions[:] *= (nxb, nyb, nzb)
         # particle count will need to be fixed somehow:
         #   by getting access to the particle file we can get the number of
@@ -1474,7 +1481,6 @@
                 for i in xrange(self.num_grids)]
         self.grids = na.array(g, dtype='object')
 
-
     def _populate_grid_objects(self):
         # We only handle 3D data, so offset is 7 (nfaces+1)
         offset = 7



More information about the yt-svn mailing list