[yt-svn] commit/yt: 4 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Aug 9 19:14:30 PDT 2017


4 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/711e98e3036a/
Changeset:   711e98e3036a
User:        ngoldbaum
Date:        2017-08-08 20:50:09+00:00
Summary:     make arbitrary grid support filling multiple fields. Fixes #1527.
Affected #:  1 file

diff -r c72d9bee3e75791d6882a9763119016b88c22ff8 -r 711e98e3036a5e585b2d7105135995a029f7d870 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -848,16 +848,15 @@
     def _fill_fields(self, fields):
         fields = [f for f in fields if f not in self.field_data]
         if len(fields) == 0: return
-        assert(len(fields) == 1)
-        field = fields[0]
-        dest = np.zeros(self.ActiveDimensions, dtype="float64")
-        for chunk in self._data_source.chunks(fields, "io"):
-            fill_region_float(chunk.fcoords, chunk.fwidth, chunk[field],
-                              self.left_edge, self.right_edge, dest, 1,
-                              self.ds.domain_width,
-                              int(any(self.ds.periodicity)))
-        fi = self.ds._get_field_info(field)
-        self[field] = self.ds.arr(dest, fi.units)
+        for field in fields:
+            dest = np.zeros(self.ActiveDimensions, dtype="float64")
+            for chunk in self._data_source.chunks(fields, "io"):
+                fill_region_float(chunk.fcoords, chunk.fwidth, chunk[field],
+                                  self.left_edge, self.right_edge, dest, 1,
+                                  self.ds.domain_width,
+                                  int(any(self.ds.periodicity)))
+            fi = self.ds._get_field_info(field)
+            self[field] = self.ds.arr(dest, fi.units)
 
 
 class LevelState(object):


https://bitbucket.org/yt_analysis/yt/commits/80bb0413c302/
Changeset:   80bb0413c302
User:        ngoldbaum
Date:        2017-08-08 20:54:26+00:00
Summary:     add a test
Affected #:  1 file

diff -r 711e98e3036a5e585b2d7105135995a029f7d870 -r 80bb0413c3021ff6dd6fec4a5ab4427d1d5a0e23 yt/data_objects/tests/test_covering_grid.py
--- a/yt/data_objects/tests/test_covering_grid.py
+++ b/yt/data_objects/tests/test_covering_grid.py
@@ -149,3 +149,18 @@
     ds.periodicity = (True, True, True)
     scg = ds.smoothed_covering_grid(1, [0, 0, 0], [128, 128, 1])
     assert_equal(scg['density'].shape, [128, 128, 1])
+
+isogal = "IsolatedGalaxy/galaxy0030/galaxy0030"
+ at requires_file(isogal)
+def test_arbitrary_grid_derived_field():
+    def _tracerf(field, data):
+        return data['Metal_Density']/data['gas', 'density']
+
+    ds = load(isogal)
+
+    ds.add_field(("gas", "tracerf"), function=_tracerf, units="dimensionless",
+                 take_log=False)
+
+    galgas = ds.arbitrary_grid([0.4, 0.4, 0.4], [0.99, 0.99, 0.99],
+                               dims=[32, 32, 32])
+    galgas['tracerf']


https://bitbucket.org/yt_analysis/yt/commits/73875a00a0e4/
Changeset:   73875a00a0e4
User:        ngoldbaum
Date:        2017-08-08 20:56:11+00:00
Summary:     add note about fill_region_float
Affected #:  1 file

diff -r 80bb0413c3021ff6dd6fec4a5ab4427d1d5a0e23 -r 73875a00a0e40bd5e13f0afacb350b8f9c512232 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -848,6 +848,8 @@
     def _fill_fields(self, fields):
         fields = [f for f in fields if f not in self.field_data]
         if len(fields) == 0: return
+        # It may be faster to adapt fill_region_float to fill multiple fields
+        # instead of looping here
         for field in fields:
             dest = np.zeros(self.ActiveDimensions, dtype="float64")
             for chunk in self._data_source.chunks(fields, "io"):


https://bitbucket.org/yt_analysis/yt/commits/5f920e360f52/
Changeset:   5f920e360f52
User:        ngoldbaum
Date:        2017-08-10 02:14:13+00:00
Summary:     Merge pull request #1530 from ngoldbaum/arb-grid-fix

Make arbitrary grid support filling multiple fields.
Affected #:  2 files

diff -r fd7c30cddbb4b9cd0b4be7f52d5b705bda6b17a0 -r 5f920e360f521bef2e6764c05701fc4c51c6d9e8 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -848,16 +848,17 @@
     def _fill_fields(self, fields):
         fields = [f for f in fields if f not in self.field_data]
         if len(fields) == 0: return
-        assert(len(fields) == 1)
-        field = fields[0]
-        dest = np.zeros(self.ActiveDimensions, dtype="float64")
-        for chunk in self._data_source.chunks(fields, "io"):
-            fill_region_float(chunk.fcoords, chunk.fwidth, chunk[field],
-                              self.left_edge, self.right_edge, dest, 1,
-                              self.ds.domain_width,
-                              int(any(self.ds.periodicity)))
-        fi = self.ds._get_field_info(field)
-        self[field] = self.ds.arr(dest, fi.units)
+        # It may be faster to adapt fill_region_float to fill multiple fields
+        # instead of looping here
+        for field in fields:
+            dest = np.zeros(self.ActiveDimensions, dtype="float64")
+            for chunk in self._data_source.chunks(fields, "io"):
+                fill_region_float(chunk.fcoords, chunk.fwidth, chunk[field],
+                                  self.left_edge, self.right_edge, dest, 1,
+                                  self.ds.domain_width,
+                                  int(any(self.ds.periodicity)))
+            fi = self.ds._get_field_info(field)
+            self[field] = self.ds.arr(dest, fi.units)
 
 
 class LevelState(object):

diff -r fd7c30cddbb4b9cd0b4be7f52d5b705bda6b17a0 -r 5f920e360f521bef2e6764c05701fc4c51c6d9e8 yt/data_objects/tests/test_covering_grid.py
--- a/yt/data_objects/tests/test_covering_grid.py
+++ b/yt/data_objects/tests/test_covering_grid.py
@@ -149,3 +149,18 @@
     ds.periodicity = (True, True, True)
     scg = ds.smoothed_covering_grid(1, [0, 0, 0], [128, 128, 1])
     assert_equal(scg['density'].shape, [128, 128, 1])
+
+isogal = "IsolatedGalaxy/galaxy0030/galaxy0030"
+ at requires_file(isogal)
+def test_arbitrary_grid_derived_field():
+    def _tracerf(field, data):
+        return data['Metal_Density']/data['gas', 'density']
+
+    ds = load(isogal)
+
+    ds.add_field(("gas", "tracerf"), function=_tracerf, units="dimensionless",
+                 take_log=False)
+
+    galgas = ds.arbitrary_grid([0.4, 0.4, 0.4], [0.99, 0.99, 0.99],
+                               dims=[32, 32, 32])
+    galgas['tracerf']

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