[Yt-svn] yt: 2 new changesets
hg at spacepope.org
hg at spacepope.org
Tue Nov 9 14:03:09 PST 2010
hg Repository: yt
details: yt/rev/813a17fcc993
changeset: 3513:813a17fcc993
user: J.S. Oishi <jsoishi at gmail.com>
date:
Tue Nov 09 14:02:33 2010 -0800
description:
added B magnitude field to enzo.
hg Repository: yt
details: yt/rev/1bbf6d4eca9b
changeset: 3514:1bbf6d4eca9b
user: J.S. Oishi <jsoishi at gmail.com>
date:
Tue Nov 09 14:02:58 2010 -0800
description:
merged.
diffstat:
yt/analysis_modules/halo_finding/halo_objects.py | 2 +-
yt/frontends/enzo/fields.py | 8 +
yt/utilities/_amr_utils/RayIntegrators.pyx | 34 +-
yt/utilities/amr_utils.c | 4789 +++++++++------------
4 files changed, 2191 insertions(+), 2642 deletions(-)
diffs (truncated from 15503 to 300 lines):
diff -r 2bf5524cb6bf -r 1bbf6d4eca9b yt/analysis_modules/halo_finding/halo_objects.py
--- a/yt/analysis_modules/halo_finding/halo_objects.py Mon Nov 08 21:15:09 2010 -0800
+++ b/yt/analysis_modules/halo_finding/halo_objects.py Tue Nov 09 14:02:58 2010 -0800
@@ -1604,7 +1604,7 @@
bin_width = base_padding
num_bins = int(math.ceil(width / bin_width))
bins = na.arange(num_bins+1, dtype='float64') * bin_width + self._data_source.left_edge[dim]
- counts, bins = na.histogram(data, bins, new=True)
+ counts, bins = na.histogram(data, bins)
# left side.
start = 0
count = counts[0]
diff -r 2bf5524cb6bf -r 1bbf6d4eca9b yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py Mon Nov 08 21:15:09 2010 -0800
+++ b/yt/frontends/enzo/fields.py Tue Nov 09 14:02:58 2010 -0800
@@ -390,6 +390,14 @@
f._convert_function=_convertBfield
f._units=r"\mathrm{Gau\ss}"
f.take_log=False
+
+def _Bmag(field, data):
+ """ magnitude of bvec
+ """
+ return na.sqrt(data['Bx']**2 + data['By']**2 + data['Bz']**2)
+
+add_field("Bmag", function=_Bmag,display_name=r"|B|",units=r"\mathrm{Gau\ss}")
+
#
# Now we do overrides for 2D fields
diff -r 2bf5524cb6bf -r 1bbf6d4eca9b yt/utilities/_amr_utils/RayIntegrators.pyx
--- a/yt/utilities/_amr_utils/RayIntegrators.pyx Mon Nov 08 21:15:09 2010 -0800
+++ b/yt/utilities/_amr_utils/RayIntegrators.pyx Tue Nov 09 14:02:58 2010 -0800
@@ -138,23 +138,29 @@
# Do left edge then right edge in each dim
cdef int i, x, y
cdef np.float64_t tl, tr, intersect_t, enter_t, exit_t, dt_tolerance
- cdef np.ndarray[np.int64_t, ndim=1] step = np.empty((3,), dtype=np.int64)
- cdef np.ndarray[np.int64_t, ndim=1] cur_ind = np.empty((3,), dtype=np.int64)
- cdef np.ndarray[np.float64_t, ndim=1] tdelta = np.empty((3,), dtype=np.float64)
- cdef np.ndarray[np.float64_t, ndim=1] tmax = np.empty((3,), dtype=np.float64)
- cdef np.ndarray[np.float64_t, ndim=1] intersect = np.empty((3,), dtype=np.float64)
+ cdef np.float64_t iv_dir[3], tdelta[3], tmax[3], intersect[3]
+ cdef np.int64_t step[3], cur_ind[3]
intersect_t = 1
dt_tolerance = 1e-6
# recall p = v * t + u
# where p is position, v is our vector, u is the start point
for i in range(3):
# As long as we're iterating, set some other stuff, too
- if(v[i] < 0): step[i] = -1
- else: step[i] = 1
+ if(v[i] < 0):
+ step[i] = -1
+ elif (v[i] == 0):
+ step[i] = 1
+ tmax[i] = 1e60
+ iv_dir[i] = 1e60
+ tdelta[i] = 1e-60
+ continue
+ else:
+ step[i] = 1
x = (i+1)%3
y = (i+2)%3
- tl = (left_edge[i] - u[i])/v[i]
- tr = (right_edge[i] - u[i])/v[i]
+ iv_dir[i] = 1.0/v[i]
+ tl = (left_edge[i] - u[i])*iv_dir[i]
+ tr = (right_edge[i] - u[i])*iv_dir[i]
if (left_edge[x] <= (u[x] + tl*v[x]) <= right_edge[x]) and \
(left_edge[y] <= (u[y] + tl*v[y]) <= right_edge[y]) and \
(0.0 <= tl < intersect_t):
@@ -170,15 +176,15 @@
intersect_t = 0.0
if not (0 <= intersect_t <= 1): return
# Now get the indices of the intersection
- intersect = u + intersect_t * v
for i in range(3):
+ intersect[i] = u[i] + intersect_t * v[i]
cur_ind[i] = np.floor((intersect[i] + 1e-8*dx[i] - left_edge[i])/dx[i])
- tmax[i] = (((cur_ind[i]+step[i])*dx[i])+left_edge[i]-u[i])/v[i]
+ tmax[i] = (((cur_ind[i]+step[i])*dx[i])+left_edge[i]-u[i])*iv_dir[i]
if cur_ind[i] == grid_mask.shape[i] and step[i] < 0:
cur_ind[i] = grid_mask.shape[i] - 1
- if step[i] > 0: tmax[i] = (((cur_ind[i]+1)*dx[i])+left_edge[i]-u[i])/v[i]
- if step[i] < 0: tmax[i] = (((cur_ind[i]+0)*dx[i])+left_edge[i]-u[i])/v[i]
- tdelta[i] = (dx[i]/v[i])
+ if step[i] > 0: tmax[i] = (((cur_ind[i]+1)*dx[i])+left_edge[i]-u[i])*iv_dir[i]
+ if step[i] < 0: tmax[i] = (((cur_ind[i]+0)*dx[i])+left_edge[i]-u[i])*iv_dir[i]
+ tdelta[i] = (dx[i]*iv_dir[i])
if tdelta[i] < 0: tdelta[i] *= -1
# The variable intersect contains the point we first pierce the grid
enter_t = intersect_t
diff -r 2bf5524cb6bf -r 1bbf6d4eca9b yt/utilities/amr_utils.c
--- a/yt/utilities/amr_utils.c Mon Nov 08 21:15:09 2010 -0800
+++ b/yt/utilities/amr_utils.c Tue Nov 09 14:02:58 2010 -0800
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.13 on Sun Oct 31 12:35:26 2010 */
+/* Generated by Cython 0.13.beta0 on Tue Nov 9 08:21:49 2010 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
@@ -151,11 +151,6 @@
#endif
#if PY_MAJOR_VERSION >= 3
- #define PyBoolObject PyLongObject
-#endif
-
-
-#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
#else
@@ -383,7 +378,7 @@
typedef npy_cdouble __pyx_t_5numpy_complex_t;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":76
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":76
* cdef class VectorPlane
*
* cdef struct FieldInterpolationTable: # <<<<<<<<<<<<<<
@@ -403,7 +398,7 @@
int pass_through;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":89
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":89
* int pass_through
*
* cdef void FIT_initialize_table(FieldInterpolationTable *fit, int nbins, # <<<<<<<<<<<<<<
@@ -418,7 +413,7 @@
int pass_through;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/QuadTree.pyx":39
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/QuadTree.pyx":39
* void *alloca(int)
*
* cdef struct QuadTreeNode: # <<<<<<<<<<<<<<
@@ -435,7 +430,7 @@
struct __pyx_t_2yt_9utilities_9amr_utils_QuadTreeNode *children[2][2];
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":74
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":74
* np.float64_t *data, np.float64_t *grad)
*
* cdef class VectorPlane # <<<<<<<<<<<<<<
@@ -467,7 +462,7 @@
__pyx_t_5numpy_float64_t *y_vec;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":36
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":36
* self.refined_pos = 0
*
* cdef class OctreeGrid: # <<<<<<<<<<<<<<
@@ -486,7 +481,7 @@
int offset;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/QuadTree.pyx":99
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/QuadTree.pyx":99
* free(node)
*
* cdef class QuadTree: # <<<<<<<<<<<<<<
@@ -503,7 +498,7 @@
__pyx_t_5numpy_int64_t top_grid_dims[2];
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":543
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":543
* tf.eval_transfer(dt, self.dvs, rgba, grad)
*
* cdef class GridFace: # <<<<<<<<<<<<<<
@@ -520,7 +515,7 @@
__pyx_t_5numpy_float64_t right_edge[3];
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":54
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":54
* self.offset = offset
*
* cdef class OctreeGridList: # <<<<<<<<<<<<<<
@@ -533,7 +528,7 @@
PyObject *grids;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":30
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":30
* cimport cython
*
* cdef class position: # <<<<<<<<<<<<<<
@@ -547,7 +542,7 @@
int refined_pos;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":118
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":118
* return (bv + dd*dy*fit.idbin)
*
* cdef class TransferFunctionProxy: # <<<<<<<<<<<<<<
@@ -568,7 +563,7 @@
PyObject *my_field_tables;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":299
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":299
* tv[offset + k] = fv[k]
*
* cdef class PartitionedGrid: # <<<<<<<<<<<<<<
@@ -593,7 +588,7 @@
int n_fields;
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":575
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":575
* return 1
*
* cdef class ProtoPrism: # <<<<<<<<<<<<<<
@@ -613,7 +608,7 @@
};
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":299
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":299
* tv[offset + k] = fv[k]
*
* cdef class PartitionedGrid: # <<<<<<<<<<<<<<
@@ -629,7 +624,7 @@
static struct __pyx_vtabstruct_2yt_9utilities_9amr_utils_PartitionedGrid *__pyx_vtabptr_2yt_9utilities_9amr_utils_PartitionedGrid;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/QuadTree.pyx":99
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/QuadTree.pyx":99
* free(node)
*
* cdef class QuadTree: # <<<<<<<<<<<<<<
@@ -646,7 +641,7 @@
static struct __pyx_vtabstruct_2yt_9utilities_9amr_utils_QuadTree *__pyx_vtabptr_2yt_9utilities_9amr_utils_QuadTree;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":222
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":222
* #rgba[i+3] += trgba[i] * (1.0 - rgba[i+3])*dt*trgba[i+3]
*
* cdef class VectorPlane: # <<<<<<<<<<<<<<
@@ -662,7 +657,7 @@
static struct __pyx_vtabstruct_2yt_9utilities_9amr_utils_VectorPlane *__pyx_vtabptr_2yt_9utilities_9amr_utils_VectorPlane;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":543
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":543
* tf.eval_transfer(dt, self.dvs, rgba, grad)
*
* cdef class GridFace: # <<<<<<<<<<<<<<
@@ -676,7 +671,7 @@
static struct __pyx_vtabstruct_2yt_9utilities_9amr_utils_GridFace *__pyx_vtabptr_2yt_9utilities_9amr_utils_GridFace;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":575
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":575
* return 1
*
* cdef class ProtoPrism: # <<<<<<<<<<<<<<
@@ -690,7 +685,7 @@
static struct __pyx_vtabstruct_2yt_9utilities_9amr_utils_ProtoPrism *__pyx_vtabptr_2yt_9utilities_9amr_utils_ProtoPrism;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":118
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/VolumeIntegrator.pyx":118
* return (bv + dd*dy*fit.idbin)
*
* cdef class TransferFunctionProxy: # <<<<<<<<<<<<<<
@@ -957,7 +952,7 @@
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
-static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_Py_intptr_t(Py_intptr_t);
+static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_npy_intp(npy_intp);
static CYTHON_INLINE npy_int32 __Pyx_PyInt_from_py_npy_int32(PyObject *);
@@ -1833,7 +1828,7 @@
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_15;
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":31
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":31
*
* cdef class position:
* cdef public int output_pos, refined_pos # <<<<<<<<<<<<<<
@@ -1925,7 +1920,7 @@
return __pyx_r;
}
-/* "/sdata/cemoody/code/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":32
+/* "/Users/matthewturk/yt/yt/yt/utilities/_amr_utils/DepthFirstOctree.pyx":32
More information about the yt-svn
mailing list