[yt-svn] commit/yt: ngoldbaum: Merged in MatthewTurk/yt/yt-3.0 (pull request #1098)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Tue Jul 29 18:23:18 PDT 2014
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/commits/cf0ab6db87ae/
Changeset: cf0ab6db87ae
Branch: yt-3.0
User: ngoldbaum
Date: 2014-07-30 03:23:10
Summary: Merged in MatthewTurk/yt/yt-3.0 (pull request #1098)
Fix radial velocity recipe
Affected #: 5 files
diff -r 4e9c0b37712e26fd0befcd752ff0de76affa2573 -r cf0ab6db87aec986ff11bd5968c0e9203d90a5cf yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -110,16 +110,11 @@
self._default_field_parameters = {
'center': self.ds.arr(np.zeros(3, dtype='float64'), 'cm'),
'bulk_velocity': self.ds.arr(np.zeros(3, dtype='float64'), 'cm/s'),
- 'normal': self.ds.arr(np.zeros(3, dtype='float64'), ''),
+ 'normal': self.ds.arr([0.0, 0.0, 1.0], ''),
}
- if field_parameters is None:
- self.field_parameters = {}
- else:
- self.field_parameters = field_parameters
+ if field_parameters is None: field_parameters = {}
self._set_default_field_parameters()
- for key, val in self.field_parameters.items():
- if not self._is_default_field_parameter(key):
- mylog.debug("Setting %s to %s", key, val)
+ for key, val in field_parameters.items():
self.set_field_parameter(key, val)
@property
@@ -134,6 +129,7 @@
return self._index
def _set_default_field_parameters(self):
+ self.field_parameters = {}
for k,v in self._default_field_parameters.items():
self.set_field_parameter(k,v)
diff -r 4e9c0b37712e26fd0befcd752ff0de76affa2573 -r cf0ab6db87aec986ff11bd5968c0e9203d90a5cf yt/data_objects/tests/test_spheres.py
--- a/yt/data_objects/tests/test_spheres.py
+++ b/yt/data_objects/tests/test_spheres.py
@@ -1,3 +1,4 @@
+from yt.data_objects.profiles import create_profile
from yt.testing import *
import numpy as np
@@ -8,3 +9,45 @@
def test_domain_sphere():
ds = fake_random_ds(16, fields = ("density"))
sp = ds.sphere(ds.domain_center, ds.domain_width[0])
+
+ # Now we test that we can get different radial velocities based on field
+ # parameters.
+
+ # Get the first sphere
+ ds = fake_random_ds(16, fields = ("density",
+ "velocity_x", "velocity_y", "velocity_z"))
+ sp0 = ds.sphere(ds.domain_center, 0.25)
+
+ # Compute the bulk velocity from the cells in this sphere
+ bulk_vel = sp0.quantities.bulk_velocity()
+
+ # Get the second sphere
+ sp1 = ds.sphere(ds.domain_center, 0.25)
+
+ # Set the bulk velocity field parameter
+ sp1.set_field_parameter("bulk_velocity", bulk_vel)
+
+ yield assert_equal, np.any(sp0["radial_velocity"] ==
+ sp1["radial_velocity"]), False
+
+ # Radial profile without correction
+ # Note we set n_bins = 8 here.
+
+ rp0 = create_profile(sp0, 'radius', 'radial_velocity',
+ units = {'radius': 'kpc'},
+ logs = {'radius': False},
+ n_bins = 8)
+
+ # Radial profile with correction for bulk velocity
+
+ rp1 = create_profile(sp1, 'radius', 'radial_velocity',
+ units = {'radius': 'kpc'},
+ logs = {'radius': False},
+ n_bins = 8)
+
+ yield assert_equal, rp0.x_bins, rp1.x_bins
+ yield assert_equal, rp0.used, rp1.used
+ yield assert_equal, rp0.used.sum() > rp0.used.size/2.0, True
+ yield assert_equal, np.any(rp0["radial_velocity"][rp0.used] ==
+ rp1["radial_velocity"][rp1.used]), \
+ False
diff -r 4e9c0b37712e26fd0befcd752ff0de76affa2573 -r cf0ab6db87aec986ff11bd5968c0e9203d90a5cf yt/utilities/lib/misc_utilities.pyx
--- a/yt/utilities/lib/misc_utilities.pyx
+++ b/yt/utilities/lib/misc_utilities.pyx
@@ -697,15 +697,21 @@
cdef np.float64_t bv[3]
cdef int i, j, k
bulk_vector = data.get_field_parameter(bulk_vector)
- if bulk_vector == None:
- bulk_vector = np.zeros(3)
- bv[0] = bulk_vector[0]; bv[1] = bulk_vector[1]; bv[2] = bulk_vector[2]
if len(data[field_names[0]].shape) == 1:
# One dimensional data
vxf = data[field_names[0]].astype("float64")
vyf = data[field_names[1]].astype("float64")
vzf = data[field_names[2]].astype("float64")
+ vyf.convert_to_units(vxf.units)
+ vzf.convert_to_units(vxf.units)
rvf = YTArray(np.empty((3, vxf.shape[0]), 'float64'), vxf.units)
+ if bulk_vector is None:
+ bv[0] = bv[1] = bv[2] = 0.0
+ else:
+ bulk_vector = bulk_vector.in_units(vxf.units)
+ bv[0] = bulk_vector[0]
+ bv[1] = bulk_vector[1]
+ bv[2] = bulk_vector[2]
for i in range(vxf.shape[0]):
rvf[0, i] = vxf[i] - bv[0]
rvf[1, i] = vyf[i] - bv[1]
@@ -716,8 +722,17 @@
vxg = data[field_names[0]].astype("float64")
vyg = data[field_names[1]].astype("float64")
vzg = data[field_names[2]].astype("float64")
+ vyg.convert_to_units(vxg.units)
+ vzg.convert_to_units(vxg.units)
shape = (3, vxg.shape[0], vxg.shape[1], vxg.shape[2])
rvg = YTArray(np.empty(shape, 'float64'), vxg.units)
+ if bulk_vector is None:
+ bv[0] = bv[1] = bv[2] = 0.0
+ else:
+ bulk_vector = bulk_vector.in_units(vxg.units)
+ bv[0] = bulk_vector[0]
+ bv[1] = bulk_vector[1]
+ bv[2] = bulk_vector[2]
for i in range(vxg.shape[0]):
for j in range(vxg.shape[1]):
for k in range(vxg.shape[2]):
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