Hey everyone,

The following error pertains to the yt branch of the hg repo.

I'm getting a particle io error when using the various yt halo finders in parallel.  It doesn't appear to have anything to do with the halo finders, but I don't know what else uses ParticleIO.py.  This only happens when running in parallel.

P000 yt         INFO       2009-11-27 15:16:59,775 Getting ParticleMassMsun using ParticleIO
Setting period equal to 1.000000
Setting period equal to 1.000000
Setting period equal to 1.000000
Traceback (most recent call last):
  File "do_hop.py", line 5, in <module>
    h = FOFHaloFinder(pf)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/HaloFinding.py", line 1024, in __init__
    self._parse_halolist(1.)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/HaloFinding.py", line 747, in _parse_halolist
    this_max_dens = halo.maximum_density_location()
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/ParallelTools.py", line 130, in single_proc_results
    return func(self, *args, **kwargs)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/HaloFinding.py", line 322, in maximum_density_location
    return self.center_of_mass()
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/ParallelTools.py", line 130, in single_proc_results
    return func(self, *args, **kwargs)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/HaloFinding.py", line 306, in center_of_mass
    pm = self["ParticleMassMsun"]
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/ParallelTools.py", line 130, in single_proc_results
    return func(self, *args, **kwargs)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/HaloFinding.py", line 136, in __getitem__
    return self.data.particles[key][self.indices]
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/ParticleIO.py", line 46, in __getitem__
    self.get_data(key)
  File "/Users/britton/Documents/work/yt-hg/yt/lagos/ParticleIO.py", line 104, in get_data
    if len(to_add) != 1: raise KeyError
KeyError

I checked the contents of to_add, and it was a list with two items (hence the exception):
['particle_mass', 'particle_mass']

I was able to get around this by removing non-unique entries in to_add, but I don't think that really fixes the underlying problem.  Anyone have any ideas?

Regards,

Britton