[yt-svn] commit/yt: ngoldbaum: Merged in MatthewTurk/yt/yt-3.0 (pull request #915)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Sat Jul 19 16:03:51 PDT 2014
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/commits/bcc3145074dd/
Changeset: bcc3145074dd
Branch: yt-3.0
User: ngoldbaum
Date: 2014-07-20 01:03:43
Summary: Merged in MatthewTurk/yt/yt-3.0 (pull request #915)
Fixes for SPH smoothing in Stream outputs
Affected #: 5 files
diff -r c44a150175c9fb3ee59ad73bda43af21dd2e6c21 -r bcc3145074ddc908d41861917e277371edf62f65 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -78,8 +78,8 @@
if (ptype, f) not in self.field_list:
continue
self.add_output_field((ptype, f),
- units = units, particle_type = True, display_name = dn,
- output_units = output_units)
+ units = units, particle_type = True,
+ display_name = dn, output_units = output_units)
for alias in aliases:
self.alias((ptype, alias), (ptype, f), units = output_units)
@@ -133,6 +133,16 @@
for _, alias_name in self.field_aliases:
if alias_name in ("particle_position", "particle_velocity"):
continue
+ if (ptype, alias_name) not in self: continue
+ fn = add_volume_weighted_smoothed_field(ptype,
+ "particle_position", "particle_mass",
+ sml_name, "density", alias_name, self,
+ num_neighbors)
+ new_aliases.append(((ftype, alias_name), fn[0]))
+ for ptype2, alias_name in self.keys():
+ if ptype2 != ptype: continue
+ if alias_name in ("particle_position", "particle_velocity"):
+ continue
fn = add_volume_weighted_smoothed_field(ptype,
"particle_position", "particle_mass",
sml_name, "density", alias_name, self,
diff -r c44a150175c9fb3ee59ad73bda43af21dd2e6c21 -r bcc3145074ddc908d41861917e277371edf62f65 yt/fields/particle_fields.py
--- a/yt/fields/particle_fields.py
+++ b/yt/fields/particle_fields.py
@@ -508,7 +508,7 @@
pos = data[ptype, coord_name].in_units("code_length")
mass = data[ptype, mass_name].in_cgs()
dens = data[ptype, density_name].in_cgs()
- quan = data[ptype, smoothed_field]
+ quan = data[ptype, smoothed_field].in_units(field_units)
if smoothing_length_name is None:
hsml = np.zeros(quan.shape, dtype='float64') - 1
hsml = data.apply_units(hsml, "code_length")
diff -r c44a150175c9fb3ee59ad73bda43af21dd2e6c21 -r bcc3145074ddc908d41861917e277371edf62f65 yt/frontends/stream/data_structures.py
--- a/yt/frontends/stream/data_structures.py
+++ b/yt/frontends/stream/data_structures.py
@@ -465,7 +465,13 @@
ds.stream_handler.particle_count[gi] = npart
def unitify_data(data):
- if all([isinstance(val, np.ndarray) for val in data.values()]):
+ if all([hasattr(val, 'units') for val in data.values()]):
+ new_data, field_units = {}, {}
+ for k, v in data.items():
+ field_units[k] = v.units
+ new_data[k] = v.copy().d
+ data = new_data
+ elif all([isinstance(val, np.ndarray) for val in data.values()]):
field_units = {field:'' for field in data.keys()}
elif all([(len(val) == 2) for val in data.values()]):
new_data, field_units = {}, {}
diff -r c44a150175c9fb3ee59ad73bda43af21dd2e6c21 -r bcc3145074ddc908d41861917e277371edf62f65 yt/frontends/stream/fields.py
--- a/yt/frontends/stream/fields.py
+++ b/yt/frontends/stream/fields.py
@@ -58,6 +58,7 @@
("particle_position_x", ("code_length", [], None)),
("particle_position_y", ("code_length", [], None)),
("particle_position_z", ("code_length", [], None)),
+ ("particle_velocity", ("code_length/code_time", [], None)),
("particle_velocity_x", ("code_length/code_time", [], None)),
("particle_velocity_y", ("code_length/code_time", [], None)),
("particle_velocity_z", ("code_length/code_time", [], None)),
@@ -65,11 +66,16 @@
("particle_gas_density", ("code_mass/code_length**3", [], None)),
("particle_gas_temperature", ("K", [], None)),
("particle_mass", ("code_mass", [], None)),
+ ("smoothing_length", ("code_length", [], None)),
+ ("density", ("code_mass/code_length**3", [], None)),
)
-
+
def setup_fluid_fields(self):
for field in self.ds.stream_handler.field_units:
units = self.ds.stream_handler.field_units[field]
if units != '': self.add_output_field(field, units=units)
-
+ def add_output_field(self, name, **kwargs):
+ if name in self.ds.stream_handler.field_units:
+ kwargs['units'] = self.ds.stream_handler.field_units[name]
+ super(StreamFieldInfo, self).add_output_field(name, **kwargs)
diff -r c44a150175c9fb3ee59ad73bda43af21dd2e6c21 -r bcc3145074ddc908d41861917e277371edf62f65 yt/frontends/stream/io.py
--- a/yt/frontends/stream/io.py
+++ b/yt/frontends/stream/io.py
@@ -28,6 +28,7 @@
class IOHandlerStream(BaseIOHandler):
_dataset_type = "stream"
+ _vector_fields = ("particle_velocity", "particle_position")
def __init__(self, ds):
self.fields = ds.stream_handler.fields
@@ -98,6 +99,7 @@
_vector_fields = ("particle_position", "particle_velocity")
_dataset_type = "stream_particles"
+ _vector_fields = ("particle_velocity", "particle_position")
def __init__(self, ds):
self.fields = ds.stream_handler.fields
@@ -182,6 +184,7 @@
class IOHandlerStreamHexahedral(BaseIOHandler):
_dataset_type = "stream_hexahedral"
+ _vector_fields = ("particle_velocity", "particle_position")
def __init__(self, ds):
self.fields = ds.stream_handler.fields
@@ -211,6 +214,7 @@
class IOHandlerStreamOctree(BaseIOHandler):
_dataset_type = "stream_octree"
+ _vector_fields = ("particle_velocity", "particle_position")
def __init__(self, ds):
self.fields = ds.stream_handler.fields
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