[yt-svn] commit/yt: 3 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Fri Jan 31 10:53:49 PST 2014


3 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/4333e8ae5475/
Changeset:   4333e8ae5475
Branch:      yt-3.0
User:        MatthewTurk
Date:        2014-01-31 18:43:57
Summary:     Adding select_cell for ray_selector for Octrees.

This is not very efficient -- but it will work, and grids won't call it.
Affected #:  1 file

diff -r 820c18731bd631c346c80a9df3594331472bc976 -r 4333e8ae547553d82abd576d1fde10084f05d9dd yt/geometry/selection_routines.pyx
--- a/yt/geometry/selection_routines.pyx
+++ b/yt/geometry/selection_routines.pyx
@@ -1213,6 +1213,20 @@
             return 1
         return 0
 
+    @cython.boundscheck(False)
+    @cython.wraparound(False)
+    @cython.cdivision(True)
+    cdef int select_cell(self, np.float64_t pos[3],
+                               np.float64_t dds[3]) nogil:
+        # This is terribly inefficient for Octrees.  For grids, it will never
+        # get called.
+        cdef int i
+        cdef np.float64_t left_edge[3], right_edge[3]
+        for i in range(3):
+            left_edge[i] = pos[i] - dds[i]/2.0
+            right_edge[i] = pos[i] + dds[i]/2.0
+        return self.select_bbox(left_edge, right_edge)
+
     def _hash_vals(self):
         return (self.p1[0], self.p1[1], self.p1[2],
                 self.p2[0], self.p2[1], self.p2[2],


https://bitbucket.org/yt_analysis/yt/commits/4c4b15b8aef5/
Changeset:   4c4b15b8aef5
Branch:      yt-3.0
User:        MatthewTurk
Date:        2014-01-31 18:56:04
Summary:     Make tcoords select_tcoords

This improves consistency for data objects.
Affected #:  4 files

diff -r 4333e8ae547553d82abd576d1fde10084f05d9dd -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a yt/data_objects/grid_patch.py
--- a/yt/data_objects/grid_patch.py
+++ b/yt/data_objects/grid_patch.py
@@ -317,7 +317,7 @@
         coords[:] = self.Level
         return coords
 
-    def tcoords(self, dobj):
+    def select_tcoords(self, dobj):
         dt, t = dobj.selector.get_dt(self)
         return dt, t
 

diff -r 4333e8ae547553d82abd576d1fde10084f05d9dd -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a yt/data_objects/octree_subset.py
--- a/yt/data_objects/octree_subset.py
+++ b/yt/data_objects/octree_subset.py
@@ -123,6 +123,9 @@
         for i, sl in slicer:
             yield sl, mask[:,:,:,i]
 
+    def select_tcoords(self, dobj):
+        raise NotImplementedError
+
     @property
     def domain_ind(self):
         if self._domain_ind is None:

diff -r 4333e8ae547553d82abd576d1fde10084f05d9dd -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a yt/data_objects/unstructured_mesh.py
--- a/yt/data_objects/unstructured_mesh.py
+++ b/yt/data_objects/unstructured_mesh.py
@@ -122,7 +122,7 @@
         if mask is None: return np.empty(0, dtype='int32')
         return ind[mask]
 
-    def tcoords(self, dobj):
+    def select_tcoords(self, dobj):
         mask = self._get_selector_mask(dobj.selector)
         if mask is None: return np.empty(0, dtype='float64')
         dt, t = dobj.selector.get_dt_mesh(self, mask.sum(), self._index_offset)

diff -r 4333e8ae547553d82abd576d1fde10084f05d9dd -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a yt/geometry/geometry_handler.py
--- a/yt/geometry/geometry_handler.py
+++ b/yt/geometry/geometry_handler.py
@@ -568,6 +568,7 @@
         else:
             tr = func(self)
         if self._cache:
+        
             setattr(self, n, tr)
         return tr
     return property(cached_func)
@@ -656,7 +657,7 @@
         if self.data_size == 0: return cdt
         ind = 0
         for obj in self.objs:
-            gdt, gt = obj.tcoords(self.dobj)
+            gdt, gt = obj.select_tcoords(self.dobj)
             if gt.shape == 0: continue
             ct[ind:ind+gt.size] = gt
             cdt[ind:ind+gdt.size] = gdt


https://bitbucket.org/yt_analysis/yt/commits/bef9fef75720/
Changeset:   bef9fef75720
Branch:      yt-3.0
User:        MatthewTurk
Date:        2014-01-31 19:08:53
Summary:     Enable Octrees to have rays.
Affected #:  2 files

diff -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a -r bef9fef757203244246d8ec500891fc424f31658 yt/data_objects/octree_subset.py
--- a/yt/data_objects/octree_subset.py
+++ b/yt/data_objects/octree_subset.py
@@ -124,7 +124,15 @@
             yield sl, mask[:,:,:,i]
 
     def select_tcoords(self, dobj):
-        raise NotImplementedError
+        # These will not be pre-allocated, which can be a problem for speed and
+        # memory usage.
+        dts, ts = [], []
+        for sl, mask in self.select_blocks(dobj.selector):
+            sl.child_mask = mask
+            dt, t = dobj.selector.get_dt(sl)
+            dts.append(dt)
+            ts.append(t)
+        return np.concatenate(dts), np.concatenate(ts)
 
     @property
     def domain_ind(self):

diff -r 4c4b15b8aef5f66704b5e8cc246d3c3e1764694a -r bef9fef757203244246d8ec500891fc424f31658 yt/geometry/geometry_handler.py
--- a/yt/geometry/geometry_handler.py
+++ b/yt/geometry/geometry_handler.py
@@ -592,6 +592,10 @@
         for obj in self.objs:
             f = getattr(obj, mname)
             arrs.append(f(self.dobj))
+        if method == "dtcoords":
+            arrs = [arr[0] for arr in arrs]
+        elif method == "tcoords":
+            arrs = [arr[1] for arr in arrs]
         arrs = np.concatenate(arrs)
         self.data_size = arrs.shape[0]
         return arrs

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the yt-svn mailing list