[yt-svn] commit/yt-3.0: MatthewTurk: Fixing RAMSES particle reading when fields are missing.

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Thu Apr 11 09:14:53 PDT 2013


1 new commit in yt-3.0:

https://bitbucket.org/yt_analysis/yt-3.0/commits/962f6c59656b/
Changeset:   962f6c59656b
Branch:      yt-3.0
User:        MatthewTurk
Date:        2013-04-11 18:14:37
Summary:     Fixing RAMSES particle reading when fields are missing.

This will avoid adding particle fields that don't exist.  Note also I have
added particle_age and particle_metallicity to the known RAMSES particle
fields.
Affected #:  2 files

diff -r 382704af8a3f86e440e3d6a3bd25d8e4671e3412 -r 962f6c59656b134ae9accb72cf739cbb5a06181f yt/frontends/ramses/data_structures.py
--- a/yt/frontends/ramses/data_structures.py
+++ b/yt/frontends/ramses/data_structures.py
@@ -116,6 +116,9 @@
             self.particle_field_offsets = {}
             return
         f = open(self.part_fn, "rb")
+        f.seek(0, os.SEEK_END)
+        flen = f.tell()
+        f.seek(0)
         hvals = {}
         attrs = ( ('ncpu', 1, 'I'),
                   ('ndim', 1, 'I'),
@@ -143,12 +146,15 @@
         if hvals["nstar_tot"] > 0:
             particle_fields += [("particle_age", "d"),
                                 ("particle_metallicity", "d")]
-        field_offsets = {particle_fields[0][0]: f.tell()}
-        for field, vtype in particle_fields[1:]:
+        field_offsets = {}
+        _pfields = {}
+        for field, vtype in particle_fields:
+            if f.tell() >= flen: break
+            field_offsets[field] = f.tell()
+            _pfields[field] = vtype
             fpu.skip(f, 1)
-            field_offsets[field] = f.tell()
         self.particle_field_offsets = field_offsets
-        self.particle_field_types = dict(particle_fields)
+        self.particle_field_types = _pfields
 
     def _read_amr_header(self):
         hvals = {}

diff -r 382704af8a3f86e440e3d6a3bd25d8e4671e3412 -r 962f6c59656b134ae9accb72cf739cbb5a06181f yt/frontends/ramses/fields.py
--- a/yt/frontends/ramses/fields.py
+++ b/yt/frontends/ramses/fields.py
@@ -91,6 +91,8 @@
     "particle_mass",
     "particle_identifier",
     "particle_refinement_level",
+    "particle_age",
+    "particle_metallicity",
 ]
 
 for f in known_ramses_particle_fields:

Repository URL: https://bitbucket.org/yt_analysis/yt-3.0/

--

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