[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