[yt-svn] commit/yt: 4 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Mon Oct 26 11:47:33 PDT 2015
4 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/648624c4ca8b/
Changeset: 648624c4ca8b
Branch: yt
User: MatthewTurk
Date: 2015-10-18 03:51:25+00:00
Summary: Adding grid_views and oct_views.
Affected #: 5 files
diff -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 yt/geometry/grid_container.pxd
--- a/yt/geometry/grid_container.pxd
+++ b/yt/geometry/grid_container.pxd
@@ -21,7 +21,8 @@
from libc.math cimport nearbyint, rint
from yt.geometry.selection_routines cimport SelectorObject, _ensure_code
from yt.utilities.lib.fp_utils cimport iclip
-from grid_visitors cimport GridTreeNode, GridVisitorData, grid_visitor_function
+from grid_visitors cimport GridTreeNode, GridVisitorData, \
+ grid_visitor_function, GridTreeNodePadded
cimport grid_visitors
from yt.utilities.lib.bitarray cimport bitarray
diff -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 yt/geometry/grid_container.pyx
--- a/yt/geometry/grid_container.pyx
+++ b/yt/geometry/grid_container.pyx
@@ -124,6 +124,27 @@
children.append(childs)
return indices, levels, nchild, children
+ @property
+ def grid_arrays(self):
+ cdef GridTreeNodePadded[:] grids
+ grids = <GridTreeNodePadded[:self.num_grids]> \
+ (<GridTreeNodePadded*> self.grids)
+ grids_basic = np.asarray(grids)
+ dtn = {}
+ dt = grids_basic.dtype
+ for name in dt.names:
+ d, o = dt.fields[name]
+ n = name
+ if name.endswith("_x"):
+ f = (d.char, 3)
+ n = name[:-2]
+ elif name.endswith("_y") or name.endswith("_z"):
+ continue
+ else:
+ f = (d.char, 1)
+ dtn[n] = (f, o)
+ return grids_basic.view(dtype=np.dtype(dtn))
+
cdef void setup_data(self, GridVisitorData *data):
# Being handed a new GVD object, we initialize it to sane defaults.
data.index = 0
diff -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 yt/geometry/grid_visitors.pxd
--- a/yt/geometry/grid_visitors.pxd
+++ b/yt/geometry/grid_visitors.pxd
@@ -27,6 +27,27 @@
int dims[3]
np.float64_t dds[3]
+cdef struct GridTreeNodePadded:
+ int num_children
+ int level
+ long int index
+ double left_edge_x
+ double left_edge_y
+ double left_edge_z
+ double right_edge_x
+ double right_edge_y
+ double right_edge_z
+ long int children_pointers
+ long int start_index_x
+ long int start_index_y
+ long int start_index_z
+ int dims_x
+ int dims_y
+ int dims_z
+ double dds_x
+ double dds_y
+ double dds_z
+
cdef struct GridVisitorData:
GridTreeNode *grid
np.uint64_t index
diff -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 yt/geometry/oct_container.pyx
--- a/yt/geometry/oct_container.pyx
+++ b/yt/geometry/oct_container.pyx
@@ -20,6 +20,7 @@
from selection_routines cimport SelectorObject
from libc.math cimport floor
cimport selection_routines
+from yt.geometry.oct_visitors cimport OctPadded
ORDER_MAX = 20
_ORDER_MAX = ORDER_MAX
@@ -109,6 +110,18 @@
for k in range(self.nn[2]):
self.root_mesh[i][j][k] = NULL
+ def get_memview(self):
+ cdef OctAllocationContainer *cur = self.cont
+ cdef Oct *this
+ cdef int i
+ cdef OctPadded[:] mm
+ rv = []
+ while cur != NULL:
+ mm = <OctPadded[:cur.n_assigned]> (<OctPadded*> cur.my_octs)
+ rv.append(np.asarray(mm))
+ cur = cur.next
+ return rv
+
@classmethod
def load_octree(cls, header):
cdef np.ndarray[np.uint8_t, ndim=1] ref_mask
diff -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 yt/geometry/oct_visitors.pxd
--- a/yt/geometry/oct_visitors.pxd
+++ b/yt/geometry/oct_visitors.pxd
@@ -24,6 +24,12 @@
np.int64_t domain # (opt) addl int index
Oct **children # Up to 8 long
+cdef struct OctPadded:
+ np.int64_t file_ind
+ np.int64_t domain_ind
+ np.int64_t domain
+ np.int64_t padding
+
cdef struct OctVisitorData:
np.uint64_t index
np.uint64_t last
https://bitbucket.org/yt_analysis/yt/commits/05593134171a/
Changeset: 05593134171a
Branch: yt
User: MatthewTurk
Date: 2015-10-18 16:12:48+00:00
Summary: Adding comments and renaming.
Affected #: 2 files
diff -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 -r 05593134171a79fea1ed9f22d1bd3f2f31272f4f yt/geometry/grid_container.pyx
--- a/yt/geometry/grid_container.pyx
+++ b/yt/geometry/grid_container.pyx
@@ -130,6 +130,10 @@
grids = <GridTreeNodePadded[:self.num_grids]> \
(<GridTreeNodePadded*> self.grids)
grids_basic = np.asarray(grids)
+ # This next bit is necessary because as of 0.23.4, Cython can't make
+ # nested dtypes automatically where you have a property that is
+ # something like float[3]. So we unroll all of those, then re-roll
+ # them in a new dtype.
dtn = {}
dt = grids_basic.dtype
for name in dt.names:
diff -r 648624c4ca8b71f499a88cf4099c8ed324d573e7 -r 05593134171a79fea1ed9f22d1bd3f2f31272f4f yt/geometry/oct_container.pyx
--- a/yt/geometry/oct_container.pyx
+++ b/yt/geometry/oct_container.pyx
@@ -110,7 +110,8 @@
for k in range(self.nn[2]):
self.root_mesh[i][j][k] = NULL
- def get_memview(self):
+ @property
+ def oct_arrays(self):
cdef OctAllocationContainer *cur = self.cont
cdef Oct *this
cdef int i
https://bitbucket.org/yt_analysis/yt/commits/7abdbfb8260c/
Changeset: 7abdbfb8260c
Branch: yt
User: MatthewTurk
Date: 2015-10-18 16:20:16+00:00
Summary: Adding grid_arrays test.
Affected #: 1 file
diff -r 05593134171a79fea1ed9f22d1bd3f2f31272f4f -r 7abdbfb8260c331007ae79e480363cdd2d93f1ee yt/geometry/tests/test_grid_container.py
--- a/yt/geometry/tests/test_grid_container.py
+++ b/yt/geometry/tests/test_grid_container.py
@@ -116,3 +116,12 @@
# Test if find_points fails properly for non equal indices' array sizes
yield assert_raises, AssertionError, test_ds.index._find_points, \
[0], 1.0, [2, 3]
+
+def test_grid_arrays_view():
+ ds = setup_test_ds()
+ tree = ds.index._get_grid_tree()
+ grid_arr = tree.grid_arrays
+ yield assert_equal, grid_arr['left_edge'], ds.index.grid_left_edge
+ yield assert_equal, grid_arr['right_edge'], ds.index.grid_right_edge
+ yield assert_equal, grid_arr['dims'], ds.index.grid_dimensions
+ yield assert_equal, grid_arr['level'], ds.index.grid_levels[:,0]
https://bitbucket.org/yt_analysis/yt/commits/75c9b92eb87a/
Changeset: 75c9b92eb87a
Branch: yt
User: ngoldbaum
Date: 2015-10-26 18:47:21+00:00
Summary: Merged in MatthewTurk/yt (pull request #1818)
Adding grid_arrays to grid_container
Affected #: 6 files
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/grid_container.pxd
--- a/yt/geometry/grid_container.pxd
+++ b/yt/geometry/grid_container.pxd
@@ -21,7 +21,8 @@
from libc.math cimport nearbyint, rint
from yt.geometry.selection_routines cimport SelectorObject, _ensure_code
from yt.utilities.lib.fp_utils cimport iclip
-from grid_visitors cimport GridTreeNode, GridVisitorData, grid_visitor_function
+from grid_visitors cimport GridTreeNode, GridVisitorData, \
+ grid_visitor_function, GridTreeNodePadded
cimport grid_visitors
from yt.utilities.lib.bitarray cimport bitarray
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/grid_container.pyx
--- a/yt/geometry/grid_container.pyx
+++ b/yt/geometry/grid_container.pyx
@@ -124,6 +124,31 @@
children.append(childs)
return indices, levels, nchild, children
+ @property
+ def grid_arrays(self):
+ cdef GridTreeNodePadded[:] grids
+ grids = <GridTreeNodePadded[:self.num_grids]> \
+ (<GridTreeNodePadded*> self.grids)
+ grids_basic = np.asarray(grids)
+ # This next bit is necessary because as of 0.23.4, Cython can't make
+ # nested dtypes automatically where you have a property that is
+ # something like float[3]. So we unroll all of those, then re-roll
+ # them in a new dtype.
+ dtn = {}
+ dt = grids_basic.dtype
+ for name in dt.names:
+ d, o = dt.fields[name]
+ n = name
+ if name.endswith("_x"):
+ f = (d.char, 3)
+ n = name[:-2]
+ elif name.endswith("_y") or name.endswith("_z"):
+ continue
+ else:
+ f = (d.char, 1)
+ dtn[n] = (f, o)
+ return grids_basic.view(dtype=np.dtype(dtn))
+
cdef void setup_data(self, GridVisitorData *data):
# Being handed a new GVD object, we initialize it to sane defaults.
data.index = 0
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/grid_visitors.pxd
--- a/yt/geometry/grid_visitors.pxd
+++ b/yt/geometry/grid_visitors.pxd
@@ -27,6 +27,27 @@
int dims[3]
np.float64_t dds[3]
+cdef struct GridTreeNodePadded:
+ int num_children
+ int level
+ long int index
+ double left_edge_x
+ double left_edge_y
+ double left_edge_z
+ double right_edge_x
+ double right_edge_y
+ double right_edge_z
+ long int children_pointers
+ long int start_index_x
+ long int start_index_y
+ long int start_index_z
+ int dims_x
+ int dims_y
+ int dims_z
+ double dds_x
+ double dds_y
+ double dds_z
+
cdef struct GridVisitorData:
GridTreeNode *grid
np.uint64_t index
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/oct_container.pyx
--- a/yt/geometry/oct_container.pyx
+++ b/yt/geometry/oct_container.pyx
@@ -20,6 +20,7 @@
from selection_routines cimport SelectorObject
from libc.math cimport floor
cimport selection_routines
+from yt.geometry.oct_visitors cimport OctPadded
ORDER_MAX = 20
_ORDER_MAX = ORDER_MAX
@@ -109,6 +110,19 @@
for k in range(self.nn[2]):
self.root_mesh[i][j][k] = NULL
+ @property
+ def oct_arrays(self):
+ cdef OctAllocationContainer *cur = self.cont
+ cdef Oct *this
+ cdef int i
+ cdef OctPadded[:] mm
+ rv = []
+ while cur != NULL:
+ mm = <OctPadded[:cur.n_assigned]> (<OctPadded*> cur.my_octs)
+ rv.append(np.asarray(mm))
+ cur = cur.next
+ return rv
+
@classmethod
def load_octree(cls, header):
cdef np.ndarray[np.uint8_t, ndim=1] ref_mask
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/oct_visitors.pxd
--- a/yt/geometry/oct_visitors.pxd
+++ b/yt/geometry/oct_visitors.pxd
@@ -24,6 +24,12 @@
np.int64_t domain # (opt) addl int index
Oct **children # Up to 8 long
+cdef struct OctPadded:
+ np.int64_t file_ind
+ np.int64_t domain_ind
+ np.int64_t domain
+ np.int64_t padding
+
cdef struct OctVisitorData:
np.uint64_t index
np.uint64_t last
diff -r 2096df33b692550e8090b58bf31da407b35cc2dd -r 75c9b92eb87a6e379461548c23f3b3902fa2b666 yt/geometry/tests/test_grid_container.py
--- a/yt/geometry/tests/test_grid_container.py
+++ b/yt/geometry/tests/test_grid_container.py
@@ -116,3 +116,12 @@
# Test if find_points fails properly for non equal indices' array sizes
yield assert_raises, AssertionError, test_ds.index._find_points, \
[0], 1.0, [2, 3]
+
+def test_grid_arrays_view():
+ ds = setup_test_ds()
+ tree = ds.index._get_grid_tree()
+ grid_arr = tree.grid_arrays
+ yield assert_equal, grid_arr['left_edge'], ds.index.grid_left_edge
+ yield assert_equal, grid_arr['right_edge'], ds.index.grid_right_edge
+ yield assert_equal, grid_arr['dims'], ds.index.grid_dimensions
+ yield assert_equal, grid_arr['level'], ds.index.grid_levels[:,0]
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