[yt-svn] commit/yt: bwkeller: Merged in chummels/yt (pull request #1876)

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Mon Nov 23 11:07:00 PST 2015


1 new commit in yt:

https://bitbucket.org/yt_analysis/yt/commits/25030d46ee18/
Changeset:   25030d46ee18
Branch:      yt
User:        bwkeller
Date:        2015-11-23 19:06:48+00:00
Summary:     Merged in chummels/yt (pull request #1876)

Adding checks to assure ARTIO creates a metal_density field from existing metal fields.
Affected #:  1 file

diff -r c453499f3b1a652cd481e179094e53c6fcdbd3cb -r 25030d46ee18f7000c1d1199fbd78a678c9c3b99 yt/frontends/artio/fields.py
--- a/yt/frontends/artio/fields.py
+++ b/yt/frontends/artio/fields.py
@@ -20,10 +20,10 @@
     FieldDetector
 from yt.units.yt_array import \
     YTArray
-
 from yt.utilities.physical_constants import \
     boltzmann_constant_cgs, \
     amu_cgs
+import numpy as np
 
 b_units = "code_magnetic"
 ra_units = "code_length / code_time**2"
@@ -99,14 +99,27 @@
         self.add_field(("gas", "temperature"), function = _temperature,
                        units = "K")
 
-        def _metal_density(field, data):
-            tr = data["metal_ia_density"]
-            tr += data["metal_ii_density"]
-            return tr
-        self.add_field(("gas","metal_density"),
-                       function=_metal_density,
-                       units="g/cm**3",
-                       take_log=True)
+        # Create a metal_density field as sum of existing metal fields. 
+        flag1 = ("artio", "HVAR_METAL_DENSITY_Ia") in self.field_list
+        flag2 = ("artio", "HVAR_METAL_DENSITY_II") in self.field_list
+        if flag1 or flag2:
+            if flag1 and flag2:
+                def _metal_density(field, data):
+                    tr = data['metal_ia_density'].copy()
+                    np.add(tr, data["metal_ii_density"], out=tr)
+                    return tr
+            elif flag1 and not flag2:
+                def _metal_density(field, data):
+                    tr = data["metal_ia_density"]
+                    return tr
+            else:
+                def _metal_density(field, data):
+                    tr = data["metal_ii_density"]
+                    return tr
+            self.add_field(("gas","metal_density"),
+                           function=_metal_density,
+                           units="g/cm**3",
+                           take_log=True)
 
     def setup_particle_fields(self, ptype):
         if ptype == "STAR":

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