[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