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

mturk at wrangler.dreamhost.com mturk at wrangler.dreamhost.com
Thu Oct 22 07:31:55 PDT 2009


Author: mturk
Date: Thu Oct 22 07:31:54 2009
New Revision: 1494
URL: http://yt.enzotools.org/changeset/1494

Log:
Substantially improved performance of covering grids by removing calls to
na.all.



Modified:
   trunk/yt/lagos/BaseDataTypes.py

Modified: trunk/yt/lagos/BaseDataTypes.py
==============================================================================
--- trunk/yt/lagos/BaseDataTypes.py	(original)
+++ trunk/yt/lagos/BaseDataTypes.py	Thu Oct 22 07:31:54 2009
@@ -2514,12 +2514,13 @@
                    obtain_fields, len(self._grids))
         if self._use_pbar: pbar = \
                 get_pbar('Searching grids for values ', len(self._grids))
+        count = self.ActiveDimensions.prod()
         for i, grid in enumerate(self._grids):
             if self._use_pbar: pbar.update(i)
-            self._get_data_from_grid(grid, obtain_fields)
-            if not na.any(self[obtain_fields[0]] == -999): break
+            count -= self._get_data_from_grid(grid, obtain_fields)
+            if count <= 0: break
         if self._use_pbar: pbar.finish()
-        if na.any(self[obtain_fields[0]] == -999):
+        if count > 0 or na.any(self[obtain_fields[0]] == -999):
             # and self.dx < self.hierarchy.grids[0].dx:
             n_bad = na.where(self[obtain_fields[0]]==-999)[0].size
             mylog.error("Covering problem: %s cells are uncovered", n_bad)
@@ -2554,11 +2555,12 @@
         ref_ratio = self.pf["RefineBy"]**(self.level - grid.Level)
         g_fields = [grid[field] for field in fields]
         c_fields = [self[field] for field in fields]
-        PointCombine.FillRegion(ref_ratio,
+        count = PointCombine.FillRegion(ref_ratio,
             grid.get_global_startindex(), self.global_startindex,
             c_fields, g_fields, 
             self.ActiveDimensions, grid.ActiveDimensions,
             grid.child_mask, self.domain_width, ll, 0)
+        return count
 
     def _flush_data_to_grid(self, grid, fields):
         ll = int(grid.Level == self.level)



More information about the yt-svn mailing list