[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