# HG changeset patch # User Matthew Turk # Date 1283409278 25200 # Branch yt # Node ID e2b55f386569be8b3cf398dcbd19ce1875fa46b9 # Parent ae6149ab12f91c2abc611b51f92ea2948664857c Adding additional particle handling for FLASH diff -r ae6149ab12f91c2abc611b51f92ea2948664857c -r e2b55f386569be8b3cf398dcbd19ce1875fa46b9 yt/data_objects/object_finding_mixin.py --- a/yt/data_objects/object_finding_mixin.py Wed Sep 01 23:23:09 2010 -0700 +++ b/yt/data_objects/object_finding_mixin.py Wed Sep 01 23:34:38 2010 -0700 @@ -131,8 +131,8 @@ centers = (self.grid_right_edge + self.grid_left_edge)/2.0 long_axis = na.maximum.reduce(self.grid_right_edge - self.grid_left_edge, 1) t = na.abs(centers - center) - DW = self.parameter_file["DomainRightEdge"] \ - - self.parameter_file["DomainLeftEdge"] + DW = self.parameter_file.domain_right_edge \ + - self.parameter_file.domain_left_edge na.minimum(t, na.abs(DW-t), t) dist = na.sqrt(na.sum((t**2.0), axis=1)) gridI = na.where(dist < (radius + long_axis)) @@ -150,8 +150,8 @@ left_edge = na.array(left_edge) right_edge = na.array(right_edge) mask = na.zeros(self.grids.shape, dtype='bool') - dl = self.parameters["DomainLeftEdge"] - dr = self.parameters["DomainRightEdge"] + dl = self.parameter_file.domain_left_edge + dr = self.parameter_file.domain_right_edge db = right_edge - left_edge for off_x in [-1, 0, 1]: nle = left_edge.copy() diff -r ae6149ab12f91c2abc611b51f92ea2948664857c -r e2b55f386569be8b3cf398dcbd19ce1875fa46b9 yt/frontends/flash/fields.py --- a/yt/frontends/flash/fields.py Wed Sep 01 23:23:09 2010 -0700 +++ b/yt/frontends/flash/fields.py Wed Sep 01 23:34:38 2010 -0700 @@ -64,15 +64,22 @@ "Total_Energy": "ener", "Gas_Energy": "eint", "Temperature": "temp", + "particle_position_x" : "particle_posx", + "particle_position_y" : "particle_posy", + "particle_position_z" : "particle_posz", } def _generate_translation(mine, theirs): - add_field(theirs, function=lambda a, b: b[mine], take_log=True) + pfield = theirs.startswith("particle") + add_field(theirs, function=lambda a, b: b[mine], take_log=True, + particle_type = pfield) for f,v in translation_dict.items(): if v not in FLASHFieldInfo: + pfield = v.startswith("particle") add_field(v, function=lambda a,b: None, take_log=False, - validators = [ValidateDataField(v)]) + validators = [ValidateDataField(v)], + particle_type = pfield) #print "Setting up translator from %s to %s" % (v, f) _generate_translation(v, f) diff -r ae6149ab12f91c2abc611b51f92ea2948664857c -r e2b55f386569be8b3cf398dcbd19ce1875fa46b9 yt/frontends/flash/io.py --- a/yt/frontends/flash/io.py Wed Sep 01 23:23:09 2010 -0700 +++ b/yt/frontends/flash/io.py Wed Sep 01 23:34:38 2010 -0700 @@ -68,6 +68,7 @@ def _read_data_set(self, grid, field): f = self._handle if field in self._particle_fields: + if grid.NumberOfParticles == 0: return na.array([], dtype='float64') start = na.sum(self.pf.h.grid_particle_count[:grid.id-grid._id_offset]) end = start + grid.NumberOfParticles fi = self._particle_fields[field]