[yt-svn] commit/yt: 2 new changesets
Bitbucket
commits-noreply at bitbucket.org
Fri Mar 16 06:10:03 PDT 2012
2 new commits in yt:
https://bitbucket.org/yt_analysis/yt/changeset/c0638b392710/
changeset: c0638b392710
branch: yt
user: MatthewTurk
date: 2012-03-01 18:04:43
summary: Adding tolerance for edges in isocontour extraction. Adding style keyword to
projections to do maximum intensity projections.
affected #: 4 files
diff -r 3cd9550438843786e965a2d7dcc6747b42b5021b -r c0638b392710a5ed0163f2d3f5bf9e92a6ea5110 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -1564,7 +1564,8 @@
def __init__(self, axis, field, weight_field = None,
max_level = None, center = None, pf = None,
source=None, node_name = None, field_cuts = None,
- preload_style='level', serialize=True,**kwargs):
+ preload_style='level', serialize=True,
+ style = "integrate", **kwargs):
"""
This is a data object corresponding to a line integral through the
simulation domain.
@@ -1628,6 +1629,13 @@
>>> print qproj["Density"]
"""
AMR2DData.__init__(self, axis, field, pf, node_name = None, **kwargs)
+ self.proj_style = style
+ if style == "mip":
+ self.func = na.max
+ elif style == "integrate":
+ self.func = na.sum # for the future
+ else:
+ raise NotImplementedError(style)
self.weight_field = weight_field
self._field_cuts = field_cuts
self.serialize = serialize
@@ -1635,7 +1643,6 @@
if center is not None: self.set_field_parameter('center',center)
self._node_name = node_name
self._initialize_source(source)
- self.func = na.sum # for the future
self._grids = self.source._grids
if max_level == None:
max_level = self.hierarchy.max_level
@@ -1678,7 +1685,8 @@
def _get_tree(self, nvals):
xd = self.pf.domain_dimensions[x_dict[self.axis]]
yd = self.pf.domain_dimensions[y_dict[self.axis]]
- return QuadTree(na.array([xd,yd], dtype='int64'), nvals)
+ return QuadTree(na.array([xd,yd], dtype='int64'), nvals,
+ style = self.proj_style)
def _get_dls(self, grid, fields):
# Place holder for a time when maybe we will not be doing just
@@ -1689,7 +1697,12 @@
if field is None: continue
dls.append(just_one(grid['d%s' % axis_names[self.axis]]))
convs.append(self.pf.units[self.pf.field_info[field].projection_conversion])
- return na.array(dls), na.array(convs)
+ dls = na.array(dls)
+ convs = na.array(convs)
+ if self.proj_style == "mip":
+ dls[:] = 1.0
+ convs[:] = 1.0
+ return dls, convs
def get_data(self, fields = None):
if fields is None: fields = ensure_list(self.fields)[:]
@@ -1723,7 +1736,13 @@
mylog.debug("End of projecting level level %s, memory usage %0.3e",
level, get_memory_usage()/1024.)
# Note that this will briefly double RAM usage
- tree = self.comm.merge_quadtree_buffers(tree)
+ if self.proj_style == "mip":
+ merge_style = -1
+ elif self.proj_style == "integrate":
+ merge_style = 1
+ else:
+ raise NotImplementedError
+ tree = self.comm.merge_quadtree_buffers(tree, merge_style=merge_style)
coord_data, field_data, weight_data, dxs = [], [], [], []
for level in range(0, self._max_level + 1):
npos, nvals, nwvals = tree.get_all_from_level(level, False)
@@ -2613,7 +2632,7 @@
def _extract_isocontours_from_grid(self, grid, field, value,
sample_values = None):
mask = self._get_cut_mask(grid) * grid.child_mask
- vals = grid.get_vertex_centered_data(field)
+ vals = grid.get_vertex_centered_data(field, no_ghost = False)
if sample_values is not None:
svals = grid.get_vertex_centered_data(sample_values)
else:
diff -r 3cd9550438843786e965a2d7dcc6747b42b5021b -r c0638b392710a5ed0163f2d3f5bf9e92a6ea5110 yt/utilities/_amr_utils/FixedInterpolator.c
--- a/yt/utilities/_amr_utils/FixedInterpolator.c
+++ b/yt/utilities/_amr_utils/FixedInterpolator.c
@@ -96,6 +96,11 @@
{0,0,1}, {1,0,1}, {1,1,1}, {0,1,1}};
npy_float64 mu = ((isovalue - v1) / (v2 - v1));
+
+ if (fabs(1.0 - isovalue/v1) < 0.000001) mu = 0.0;
+ if (fabs(1.0 - isovalue/v2) < 0.000001) mu = 1.0;
+ if (fabs(v1/v2) < 0.000001) mu = 0.0;
+
vl[0] = x; vl[1] = y; vl[2] = z;
for (i=0;i<3;i++)
vl[i] += dds[i] * cverts[vind1][i]
diff -r 3cd9550438843786e965a2d7dcc6747b42b5021b -r c0638b392710a5ed0163f2d3f5bf9e92a6ea5110 yt/utilities/_amr_utils/QuadTree.pyx
--- a/yt/utilities/_amr_utils/QuadTree.pyx
+++ b/yt/utilities/_amr_utils/QuadTree.pyx
@@ -43,6 +43,10 @@
np.int64_t pos[2]
QuadTreeNode *children[2][2]
+ctypedef void QTN_combine(QuadTreeNode *self,
+ np.float64_t *val, np.float64_t weight_val,
+ int nvals)
+
cdef void QTN_add_value(QuadTreeNode *self,
np.float64_t *val, np.float64_t weight_val,
int nvals):
@@ -51,6 +55,14 @@
self.val[i] += val[i]
self.weight_val += weight_val
+cdef void QTN_max_value(QuadTreeNode *self,
+ np.float64_t *val, np.float64_t weight_val,
+ int nvals):
+ cdef int i
+ for i in range(nvals):
+ self.val[i] = fmax(val[i], self.val[i])
+ self.weight_val = 1.0
+
cdef void QTN_refine(QuadTreeNode *self, int nvals):
cdef int i, j, i1, j1
cdef np.int64_t npos[2]
@@ -101,9 +113,16 @@
cdef np.int64_t top_grid_dims[2]
cdef int merged
cdef int num_cells
+ cdef QTN_combine *combine
def __cinit__(self, np.ndarray[np.int64_t, ndim=1] top_grid_dims,
- int nvals):
+ int nvals, style = "integrate"):
+ if style == "integrate":
+ self.combine = QTN_add_value
+ elif style == "mip":
+ self.combine = QTN_max_value
+ else:
+ raise NotImplementedError
self.merged = 1
cdef int i, j
cdef QuadTreeNode *node
@@ -190,8 +209,12 @@
@cython.wraparound(False)
def frombuffer(self, np.ndarray[np.int32_t, ndim=1] refined,
np.ndarray[np.float64_t, ndim=2] values,
- np.ndarray[np.float64_t, ndim=1] wval):
- self.merged = 1 # Just on the safe side
+ np.ndarray[np.float64_t, ndim=1] wval,
+ style):
+ if style == "mip" or style == -1:
+ self.merged = -1
+ elif style == "integrate" or style == 1:
+ self.merged = 1
cdef int curpos = 0
cdef QuadTreeNode *root
self.num_cells = wval.shape[0]
@@ -241,7 +264,7 @@
i = (pos[0] >= fac*(2*node.pos[0]+1))
j = (pos[1] >= fac*(2*node.pos[1]+1))
node = node.children[i][j]
- QTN_add_value(node, val, weight_val, self.nvals)
+ self.combine(node, val, weight_val, self.nvals)
@cython.cdivision(True)
cdef QuadTreeNode *find_on_root_level(self, np.int64_t pos[2], int level):
@@ -335,12 +358,17 @@
np.float64_t *vtoadd,
np.float64_t wtoadd,
int cur_level):
- cdef int i, j
+ cdef int i, j, n
if cur_level == level:
if node.children[0][0] != NULL: return 0
- for i in range(self.nvals):
- vdata[self.nvals * curpos + i] = node.val[i] + vtoadd[i]
- wdata[curpos] = node.weight_val + wtoadd
+ if self.merged == -1:
+ for i in range(self.nvals):
+ vdata[self.nvals * curpos + i] = fmax(node.val[i], vtoadd[i])
+ wdata[curpos] = 1.0
+ else:
+ for i in range(self.nvals):
+ vdata[self.nvals * curpos + i] = node.val[i] + vtoadd[i]
+ wdata[curpos] = node.weight_val + wtoadd
pdata[curpos * 2] = node.pos[0]
pdata[curpos * 2 + 1] = node.pos[1]
return 1
@@ -350,8 +378,14 @@
for i in range(self.nvals):
vtoadd[i] += node.val[i]
wtoadd += node.weight_val
+ elif self.merged == -1:
+ for i in range(self.nvals):
+ vtoadd[i] = node.val[i]
for i in range(2):
for j in range(2):
+ if self.merged == -1:
+ for n in range(self.nvals):
+ vtoadd[n] = node.val[n]
added += self.fill_from_level(node.children[i][j],
level, curpos + added, pdata, vdata, wdata,
vtoadd, wtoadd, cur_level + 1)
@@ -369,7 +403,8 @@
free(self.root_nodes[i])
free(self.root_nodes)
-cdef void QTN_merge_nodes(QuadTreeNode *n1, QuadTreeNode *n2, int nvals):
+cdef void QTN_merge_nodes(QuadTreeNode *n1, QuadTreeNode *n2, int nvals,
+ QTN_combine *func):
# We have four choices when merging nodes.
# 1. If both nodes have no refinement, then we add values of n2 to n1.
# 2. If both have refinement, we call QTN_merge_nodes on all four children.
@@ -378,13 +413,13 @@
# 4. If n1 has refinement and n2 does not, we add the value of n2 to n1.
cdef int i, j
- QTN_add_value(n1, n2.val, n2.weight_val, nvals)
+ func(n1, n2.val, n2.weight_val, nvals)
if n1.children[0][0] == n2.children[0][0] == NULL:
pass
elif n1.children[0][0] != NULL and n2.children[0][0] != NULL:
for i in range(2):
for j in range(2):
- QTN_merge_nodes(n1.children[i][j], n2.children[i][j], nvals)
+ QTN_merge_nodes(n1.children[i][j], n2.children[i][j], nvals, func)
elif n1.children[0][0] == NULL and n2.children[0][0] != NULL:
for i in range(2):
for j in range(2):
@@ -395,14 +430,24 @@
else:
raise RuntimeError
-def merge_quadtrees(QuadTree qt1, QuadTree qt2):
+def merge_quadtrees(QuadTree qt1, QuadTree qt2, style = 1):
cdef int i, j
qt1.num_cells = 0
+ cdef QTN_combine *func
+ if style == 1:
+ qt1.merged = 1
+ func = QTN_add_value
+ elif style == -1:
+ qt1.merged = -1
+ func = QTN_max_value
+ else:
+ raise NotImplementedError
+ if qt1.merged != 0 or qt2.merged != 0:
+ assert(qt1.merged == qt2.merged)
for i in range(qt1.top_grid_dims[0]):
for j in range(qt1.top_grid_dims[1]):
QTN_merge_nodes(qt1.root_nodes[i][j],
qt2.root_nodes[i][j],
- qt1.nvals)
+ qt1.nvals, func)
qt1.num_cells += qt1.count_total_cells(
qt1.root_nodes[i][j])
- qt1.merged = 1
diff -r 3cd9550438843786e965a2d7dcc6747b42b5021b -r c0638b392710a5ed0163f2d3f5bf9e92a6ea5110 yt/utilities/parallel_tools/parallel_analysis_interface.py
--- a/yt/utilities/parallel_tools/parallel_analysis_interface.py
+++ b/yt/utilities/parallel_tools/parallel_analysis_interface.py
@@ -640,7 +640,7 @@
return buf
@parallel_passthrough
- def merge_quadtree_buffers(self, qt):
+ def merge_quadtree_buffers(self, qt, merge_style):
# This is a modified version of pairwise reduction from Lisandro Dalcin,
# in the reductions demo of mpi4py
size = self.comm.size
@@ -665,8 +665,8 @@
#print "RECEIVING FROM %02i on %02i" % (target, rank)
buf = self.recv_quadtree(target, tgd, args)
qto = QuadTree(tgd, args[2])
- qto.frombuffer(*buf)
- merge_quadtrees(qt, qto)
+ qto.frombuffer(buf[0], buf[1], buf[2], merge_style)
+ merge_quadtrees(qt, qto, style = merge_style)
del qto
#self.send_quadtree(target, qt, tgd, args)
mask <<= 1
@@ -685,7 +685,7 @@
self.refined = buf[0]
if rank != 0:
qt = QuadTree(tgd, args[2])
- qt.frombuffer(*buf)
+ qt.frombuffer(buf[0], buf[1], buf[2], merge_style)
return qt
https://bitbucket.org/yt_analysis/yt/changeset/66e0717137ff/
changeset: 66e0717137ff
branch: yt
user: MatthewTurk
date: 2012-03-16 14:09:37
summary: Merging in MIP functionality for QuadProj
affected #: 4 files
diff -r 4a02157e1862064a97ccbb5ac842af4886c90cc1 -r 66e0717137fffcfeadc270e332cb475068554306 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -1564,7 +1564,8 @@
def __init__(self, axis, field, weight_field = None,
max_level = None, center = None, pf = None,
source=None, node_name = None, field_cuts = None,
- preload_style='level', serialize=True,**kwargs):
+ preload_style='level', serialize=True,
+ style = "integrate", **kwargs):
"""
This is a data object corresponding to a line integral through the
simulation domain.
@@ -1628,6 +1629,13 @@
>>> print qproj["Density"]
"""
AMR2DData.__init__(self, axis, field, pf, node_name = None, **kwargs)
+ self.proj_style = style
+ if style == "mip":
+ self.func = na.max
+ elif style == "integrate":
+ self.func = na.sum # for the future
+ else:
+ raise NotImplementedError(style)
self.weight_field = weight_field
self._field_cuts = field_cuts
self.serialize = serialize
@@ -1635,7 +1643,6 @@
if center is not None: self.set_field_parameter('center',center)
self._node_name = node_name
self._initialize_source(source)
- self.func = na.sum # for the future
self._grids = self.source._grids
if max_level == None:
max_level = self.hierarchy.max_level
@@ -1678,7 +1685,8 @@
def _get_tree(self, nvals):
xd = self.pf.domain_dimensions[x_dict[self.axis]]
yd = self.pf.domain_dimensions[y_dict[self.axis]]
- return QuadTree(na.array([xd,yd], dtype='int64'), nvals)
+ return QuadTree(na.array([xd,yd], dtype='int64'), nvals,
+ style = self.proj_style)
def _get_dls(self, grid, fields):
# Place holder for a time when maybe we will not be doing just
@@ -1689,7 +1697,12 @@
if field is None: continue
dls.append(just_one(grid['d%s' % axis_names[self.axis]]))
convs.append(self.pf.units[self.pf.field_info[field].projection_conversion])
- return na.array(dls), na.array(convs)
+ dls = na.array(dls)
+ convs = na.array(convs)
+ if self.proj_style == "mip":
+ dls[:] = 1.0
+ convs[:] = 1.0
+ return dls, convs
def get_data(self, fields = None):
if fields is None: fields = ensure_list(self.fields)[:]
@@ -1723,7 +1736,13 @@
mylog.debug("End of projecting level level %s, memory usage %0.3e",
level, get_memory_usage()/1024.)
# Note that this will briefly double RAM usage
- tree = self.comm.merge_quadtree_buffers(tree)
+ if self.proj_style == "mip":
+ merge_style = -1
+ elif self.proj_style == "integrate":
+ merge_style = 1
+ else:
+ raise NotImplementedError
+ tree = self.comm.merge_quadtree_buffers(tree, merge_style=merge_style)
coord_data, field_data, weight_data, dxs = [], [], [], []
for level in range(0, self._max_level + 1):
npos, nvals, nwvals = tree.get_all_from_level(level, False)
@@ -2613,7 +2632,7 @@
def _extract_isocontours_from_grid(self, grid, field, value,
sample_values = None):
mask = self._get_cut_mask(grid) * grid.child_mask
- vals = grid.get_vertex_centered_data(field)
+ vals = grid.get_vertex_centered_data(field, no_ghost = False)
if sample_values is not None:
svals = grid.get_vertex_centered_data(sample_values)
else:
diff -r 4a02157e1862064a97ccbb5ac842af4886c90cc1 -r 66e0717137fffcfeadc270e332cb475068554306 yt/utilities/_amr_utils/FixedInterpolator.c
--- a/yt/utilities/_amr_utils/FixedInterpolator.c
+++ b/yt/utilities/_amr_utils/FixedInterpolator.c
@@ -96,6 +96,11 @@
{0,0,1}, {1,0,1}, {1,1,1}, {0,1,1}};
npy_float64 mu = ((isovalue - v1) / (v2 - v1));
+
+ if (fabs(1.0 - isovalue/v1) < 0.000001) mu = 0.0;
+ if (fabs(1.0 - isovalue/v2) < 0.000001) mu = 1.0;
+ if (fabs(v1/v2) < 0.000001) mu = 0.0;
+
vl[0] = x; vl[1] = y; vl[2] = z;
for (i=0;i<3;i++)
vl[i] += dds[i] * cverts[vind1][i]
diff -r 4a02157e1862064a97ccbb5ac842af4886c90cc1 -r 66e0717137fffcfeadc270e332cb475068554306 yt/utilities/_amr_utils/QuadTree.pyx
--- a/yt/utilities/_amr_utils/QuadTree.pyx
+++ b/yt/utilities/_amr_utils/QuadTree.pyx
@@ -43,6 +43,10 @@
np.int64_t pos[2]
QuadTreeNode *children[2][2]
+ctypedef void QTN_combine(QuadTreeNode *self,
+ np.float64_t *val, np.float64_t weight_val,
+ int nvals)
+
cdef void QTN_add_value(QuadTreeNode *self,
np.float64_t *val, np.float64_t weight_val,
int nvals):
@@ -51,6 +55,14 @@
self.val[i] += val[i]
self.weight_val += weight_val
+cdef void QTN_max_value(QuadTreeNode *self,
+ np.float64_t *val, np.float64_t weight_val,
+ int nvals):
+ cdef int i
+ for i in range(nvals):
+ self.val[i] = fmax(val[i], self.val[i])
+ self.weight_val = 1.0
+
cdef void QTN_refine(QuadTreeNode *self, int nvals):
cdef int i, j, i1, j1
cdef np.int64_t npos[2]
@@ -101,9 +113,16 @@
cdef np.int64_t top_grid_dims[2]
cdef int merged
cdef int num_cells
+ cdef QTN_combine *combine
def __cinit__(self, np.ndarray[np.int64_t, ndim=1] top_grid_dims,
- int nvals):
+ int nvals, style = "integrate"):
+ if style == "integrate":
+ self.combine = QTN_add_value
+ elif style == "mip":
+ self.combine = QTN_max_value
+ else:
+ raise NotImplementedError
self.merged = 1
cdef int i, j
cdef QuadTreeNode *node
@@ -190,8 +209,12 @@
@cython.wraparound(False)
def frombuffer(self, np.ndarray[np.int32_t, ndim=1] refined,
np.ndarray[np.float64_t, ndim=2] values,
- np.ndarray[np.float64_t, ndim=1] wval):
- self.merged = 1 # Just on the safe side
+ np.ndarray[np.float64_t, ndim=1] wval,
+ style):
+ if style == "mip" or style == -1:
+ self.merged = -1
+ elif style == "integrate" or style == 1:
+ self.merged = 1
cdef int curpos = 0
cdef QuadTreeNode *root
self.num_cells = wval.shape[0]
@@ -241,7 +264,7 @@
i = (pos[0] >= fac*(2*node.pos[0]+1))
j = (pos[1] >= fac*(2*node.pos[1]+1))
node = node.children[i][j]
- QTN_add_value(node, val, weight_val, self.nvals)
+ self.combine(node, val, weight_val, self.nvals)
@cython.cdivision(True)
cdef QuadTreeNode *find_on_root_level(self, np.int64_t pos[2], int level):
@@ -335,12 +358,17 @@
np.float64_t *vtoadd,
np.float64_t wtoadd,
int cur_level):
- cdef int i, j
+ cdef int i, j, n
if cur_level == level:
if node.children[0][0] != NULL: return 0
- for i in range(self.nvals):
- vdata[self.nvals * curpos + i] = node.val[i] + vtoadd[i]
- wdata[curpos] = node.weight_val + wtoadd
+ if self.merged == -1:
+ for i in range(self.nvals):
+ vdata[self.nvals * curpos + i] = fmax(node.val[i], vtoadd[i])
+ wdata[curpos] = 1.0
+ else:
+ for i in range(self.nvals):
+ vdata[self.nvals * curpos + i] = node.val[i] + vtoadd[i]
+ wdata[curpos] = node.weight_val + wtoadd
pdata[curpos * 2] = node.pos[0]
pdata[curpos * 2 + 1] = node.pos[1]
return 1
@@ -350,8 +378,14 @@
for i in range(self.nvals):
vtoadd[i] += node.val[i]
wtoadd += node.weight_val
+ elif self.merged == -1:
+ for i in range(self.nvals):
+ vtoadd[i] = node.val[i]
for i in range(2):
for j in range(2):
+ if self.merged == -1:
+ for n in range(self.nvals):
+ vtoadd[n] = node.val[n]
added += self.fill_from_level(node.children[i][j],
level, curpos + added, pdata, vdata, wdata,
vtoadd, wtoadd, cur_level + 1)
@@ -369,7 +403,8 @@
free(self.root_nodes[i])
free(self.root_nodes)
-cdef void QTN_merge_nodes(QuadTreeNode *n1, QuadTreeNode *n2, int nvals):
+cdef void QTN_merge_nodes(QuadTreeNode *n1, QuadTreeNode *n2, int nvals,
+ QTN_combine *func):
# We have four choices when merging nodes.
# 1. If both nodes have no refinement, then we add values of n2 to n1.
# 2. If both have refinement, we call QTN_merge_nodes on all four children.
@@ -378,13 +413,13 @@
# 4. If n1 has refinement and n2 does not, we add the value of n2 to n1.
cdef int i, j
- QTN_add_value(n1, n2.val, n2.weight_val, nvals)
+ func(n1, n2.val, n2.weight_val, nvals)
if n1.children[0][0] == n2.children[0][0] == NULL:
pass
elif n1.children[0][0] != NULL and n2.children[0][0] != NULL:
for i in range(2):
for j in range(2):
- QTN_merge_nodes(n1.children[i][j], n2.children[i][j], nvals)
+ QTN_merge_nodes(n1.children[i][j], n2.children[i][j], nvals, func)
elif n1.children[0][0] == NULL and n2.children[0][0] != NULL:
for i in range(2):
for j in range(2):
@@ -395,14 +430,24 @@
else:
raise RuntimeError
-def merge_quadtrees(QuadTree qt1, QuadTree qt2):
+def merge_quadtrees(QuadTree qt1, QuadTree qt2, style = 1):
cdef int i, j
qt1.num_cells = 0
+ cdef QTN_combine *func
+ if style == 1:
+ qt1.merged = 1
+ func = QTN_add_value
+ elif style == -1:
+ qt1.merged = -1
+ func = QTN_max_value
+ else:
+ raise NotImplementedError
+ if qt1.merged != 0 or qt2.merged != 0:
+ assert(qt1.merged == qt2.merged)
for i in range(qt1.top_grid_dims[0]):
for j in range(qt1.top_grid_dims[1]):
QTN_merge_nodes(qt1.root_nodes[i][j],
qt2.root_nodes[i][j],
- qt1.nvals)
+ qt1.nvals, func)
qt1.num_cells += qt1.count_total_cells(
qt1.root_nodes[i][j])
- qt1.merged = 1
diff -r 4a02157e1862064a97ccbb5ac842af4886c90cc1 -r 66e0717137fffcfeadc270e332cb475068554306 yt/utilities/parallel_tools/parallel_analysis_interface.py
--- a/yt/utilities/parallel_tools/parallel_analysis_interface.py
+++ b/yt/utilities/parallel_tools/parallel_analysis_interface.py
@@ -643,7 +643,7 @@
return buf
@parallel_passthrough
- def merge_quadtree_buffers(self, qt):
+ def merge_quadtree_buffers(self, qt, merge_style):
# This is a modified version of pairwise reduction from Lisandro Dalcin,
# in the reductions demo of mpi4py
size = self.comm.size
@@ -668,8 +668,8 @@
#print "RECEIVING FROM %02i on %02i" % (target, rank)
buf = self.recv_quadtree(target, tgd, args)
qto = QuadTree(tgd, args[2])
- qto.frombuffer(*buf)
- merge_quadtrees(qt, qto)
+ qto.frombuffer(buf[0], buf[1], buf[2], merge_style)
+ merge_quadtrees(qt, qto, style = merge_style)
del qto
#self.send_quadtree(target, qt, tgd, args)
mask <<= 1
@@ -688,7 +688,7 @@
self.refined = buf[0]
if rank != 0:
qt = QuadTree(tgd, args[2])
- qt.frombuffer(*buf)
+ qt.frombuffer(buf[0], buf[1], buf[2], merge_style)
return qt
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