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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Thu Aug 6 09:08:59 PDT 2015


1 new commit in yt:

https://bitbucket.org/yt_analysis/yt/commits/84097e00d5ac/
Changeset:   84097e00d5ac
Branch:      yt
User:        bwkeller
Date:        2015-08-06 16:08:46+00:00
Summary:     Merged in karraki/yt (pull request #1679)

[BUGFIX] ART star particle creation time field
Affected #:  4 files

diff -r 803700f0f40882d5e291ce779e283fcfee509f22 -r 84097e00d5acbd688b998c638519237b86cffc50 yt/frontends/art/data_structures.py
--- a/yt/frontends/art/data_structures.py
+++ b/yt/frontends/art/data_structures.py
@@ -28,10 +28,7 @@
     OctreeSubset
 from yt.geometry.oct_container import \
     ARTOctreeContainer
-from .fields import \
-    ARTFieldInfo
-from yt.utilities.definitions import \
-    mpc_conversion
+from .fields import ARTFieldInfo
 from yt.utilities.io_handler import \
     io_registry
 from yt.utilities.lib.misc_utilities import \
@@ -50,14 +47,10 @@
 from .io import b2t
 from .io import a2b
 
-from yt.utilities.definitions import \
-    mpc_conversion, sec_conversion
 from yt.utilities.io_handler import \
     io_registry
 from yt.fields.field_info_container import \
     FieldInfoContainer, NullFunc
-from yt.utilities.physical_constants import \
-    mass_hydrogen_cgs, sec_per_Gyr
 
 
 class ARTIndex(OctreeIndex):
@@ -300,6 +293,7 @@
             self.iOctFree, self.nOct = fpu.read_vector(f, 'i', '>')
             self.child_grid_offset = f.tell()
             self.parameters.update(amr_header_vals)
+            amr_header_vals = None
             # estimate the root level
             float_center, fl, iocts, nocts, root_level = _read_art_level_info(
                 f,
@@ -347,18 +341,18 @@
 
         # setup standard simulation params yt expects to see
         self.current_redshift = self.parameters["aexpn"]**-1.0 - 1.0
-        self.omega_lambda = amr_header_vals['Oml0']
-        self.omega_matter = amr_header_vals['Om0']
-        self.hubble_constant = amr_header_vals['hubble']
-        self.min_level = amr_header_vals['min_level']
-        self.max_level = amr_header_vals['max_level']
+        self.omega_lambda = self.parameters['Oml0']
+        self.omega_matter = self.parameters['Om0']
+        self.hubble_constant = self.parameters['hubble']
+        self.min_level = self.parameters['min_level']
+        self.max_level = self.parameters['max_level']
         if self.limit_level is not None:
             self.max_level = min(
-                self.limit_level, amr_header_vals['max_level'])
+                self.limit_level, self.parameters['max_level'])
         if self.force_max_level is not None:
             self.max_level = self.force_max_level
         self.hubble_time = 1.0/(self.hubble_constant*100/3.08568025e19)
-        self.current_time = b2t(self.parameters['t']) * sec_per_Gyr
+        self.current_time = self.quan(b2t(self.parameters['t']), 'Gyr')
         self.gamma = self.parameters["gamma"]
         mylog.info("Max level is %02i", self.max_level)
 
@@ -600,7 +594,7 @@
 #            self.max_level = self.force_max_level
         self.hubble_time = 1.0/(self.hubble_constant*100/3.08568025e19)
         self.parameters['t'] = a2b(self.parameters['aexpn'])
-        self.current_time = b2t(self.parameters['t']) * sec_per_Gyr
+        self.current_time = self.quan(b2t(self.parameters['t']), 'Gyr')
         self.gamma = self.parameters["gamma"]
         mylog.info("Max level is %02i", self.max_level)
 

diff -r 803700f0f40882d5e291ce779e283fcfee509f22 -r 84097e00d5acbd688b998c638519237b86cffc50 yt/frontends/art/definitions.py
--- a/yt/frontends/art/definitions.py
+++ b/yt/frontends/art/definitions.py
@@ -110,7 +110,7 @@
 ]
 
 star_struct = [
-    ('>d', ('tdum', 'adum')),
+    ('>d', ('t_stars', 'a_stars')),
     ('>i', 'nstars'),
     ('>d', ('ws_old', 'ws_oldi')),
     ('>f', 'particle_mass'),

diff -r 803700f0f40882d5e291ce779e283fcfee509f22 -r 84097e00d5acbd688b998c638519237b86cffc50 yt/frontends/art/fields.py
--- a/yt/frontends/art/fields.py
+++ b/yt/frontends/art/fields.py
@@ -55,7 +55,7 @@
         ("particle_mass", ("code_mass", [], None)),
         ("particle_index", ("", [], None)),
         ("particle_species", ("", ["particle_type"], None)),
-        ("particle_creation_time", ("code_time", [], None)),
+        ("particle_creation_time", ("Gyr", [], None)),
         ("particle_mass_initial", ("code_mass", [], None)),
         ("particle_metallicity1", ("", [], None)),
         ("particle_metallicity2", ("", [], None)),

diff -r 803700f0f40882d5e291ce779e283fcfee509f22 -r 84097e00d5acbd688b998c638519237b86cffc50 yt/frontends/art/io.py
--- a/yt/frontends/art/io.py
+++ b/yt/frontends/art/io.py
@@ -31,6 +31,7 @@
 from yt.utilities.physical_constants import sec_per_year
 from yt.utilities.lib.geometry_utils import compute_morton
 from yt.geometry.oct_container import _ORDER_MAX
+from yt.units.yt_array import YTQuantity
 
 
 class IOHandlerART(BaseIOHandler):
@@ -300,18 +301,19 @@
 def interpolate_ages(data, file_stars, interp_tb=None, interp_ages=None,
                      current_time=None):
     if interp_tb is None:
-        tdum, adum = read_star_field(file_stars,
-                                     field="tdum")
+        t_stars, a_stars = read_star_field(file_stars,
+                                     field="t_stars")
         # timestamp of file should match amr timestamp
         if current_time:
-            tdiff = b2t(tdum)-current_time/(sec_per_year*1e9)
-            if np.abs(tdiff) < 1e-4:
+            tdiff = YTQuantity(b2t(t_stars), 'Gyr') - current_time.in_units('Gyr')
+            if np.abs(tdiff) > 1e-4:
                 mylog.info("Timestamp mismatch in star " +
-                           "particle header")
+                           "particle header: %s", tdiff)
         mylog.info("Interpolating ages")
         interp_tb, interp_ages = b2t(data)
+        interp_tb = YTArray(interp_tb, 'Gyr')
+        interp_ages = YTArray(interp_ages, 'Gyr')
     temp = np.interp(data, interp_tb, interp_ages)
-    temp *= 1.0e9*sec_per_year
     return interp_tb, interp_ages, temp

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