[Yt-svn] yt-commit r869 - trunk/yt/lagos

britton at wrangler.dreamhost.com britton at wrangler.dreamhost.com
Mon Nov 3 19:21:17 PST 2008


Author: britton
Date: Mon Nov  3 19:21:17 2008
New Revision: 869
URL: http://yt.spacepope.org/changeset/869

Log:
Fixed routines for region and periodic_region objects that determine which 
grid cells are inside region so that they take into account cells whose 
centers are not in the region but part of those cells actually are.

3 November, 2008

Britton Smith



Modified:
   trunk/yt/lagos/BaseDataTypes.py

Modified: trunk/yt/lagos/BaseDataTypes.py
==============================================================================
--- trunk/yt/lagos/BaseDataTypes.py	(original)
+++ trunk/yt/lagos/BaseDataTypes.py	Mon Nov  3 19:21:17 2008
@@ -539,7 +539,7 @@
     _okay_to_serialize = True
     def _should_i_write(self): return True
 
-    def _serialize(self, node_name = None, force = False):
+    def _serialize(self, node_name = None, force = True):
         if not self._should_i_write(): return
         mylog.info("Serializing data...")
         if node_name is None: node_name = self._gen_node_name()
@@ -1476,12 +1476,12 @@
         if self._is_fully_enclosed(grid):
             return True
         else:
-            cm = ( (grid['x'] < self.right_edge[0])
-                 & (grid['x'] >= self.left_edge[0])
-                 & (grid['y'] < self.right_edge[1])
-                 & (grid['y'] >= self.left_edge[1])
-                 & (grid['z'] < self.right_edge[2])
-                 & (grid['z'] >= self.left_edge[2]) )
+            cm = ( (grid['x'] - 0.5*grid['dx'] < self.right_edge[0])
+                 & (grid['x'] + 0.5*grid['dx'] >= self.left_edge[0])
+                 & (grid['y'] - 0.5*grid['dy'] < self.right_edge[1])
+                 & (grid['y'] + 0.5*grid['dy'] >= self.left_edge[1])
+                 & (grid['z'] - 0.5*grid['dz'] < self.right_edge[2])
+                 & (grid['z'] + 0.5*grid['dz'] >= self.left_edge[2]) )
         return cm
 
 class EnzoPeriodicRegionBase(Enzo3DData):
@@ -1528,12 +1528,12 @@
         else:
             cm = na.zeros(grid.ActiveDimensions,dtype='bool')
             for off_x, off_y, off_z in self.offsets:
-                cm = cm | ( (grid['x'] + off_x < self.right_edge[0])
-                          & (grid['x'] + off_x >= self.left_edge[0])
-                          & (grid['y'] + off_y < self.right_edge[1])
-                          & (grid['y'] + off_y >= self.left_edge[1])
-                          & (grid['z'] + off_z < self.right_edge[2])
-                          & (grid['z'] + off_z >= self.left_edge[2]) )
+                cm = cm | ( (grid['x'] - grid['dx'] + off_x < self.right_edge[0])
+                          & (grid['x'] + grid['dx'] + off_x >= self.left_edge[0])
+                          & (grid['y'] - grid['dy'] + off_y < self.right_edge[1])
+                          & (grid['y'] + grid['dy'] + off_y >= self.left_edge[1])
+                          & (grid['z'] - grid['dz'] + off_z < self.right_edge[2])
+                          & (grid['z'] + grid['dz'] + off_z >= self.left_edge[2]) )
             return cm
 
 class EnzoGridCollection(Enzo3DData):



More information about the yt-svn mailing list