- It is probably worthwhile to have a name for each particle which
uniquely identifies the particle. The ID doesn't really serve this
purpose as adding a particle changes the ids of particles which are
added later. My proposed mechanism would look something like
like adding get and set name methods to particles (and perhaps an
argument to the constructor). When a particle is added to a model, if
there is a name conflict then an exception would be thrown (or we
could append something to the name to make it unique). If no name was
specified before the particle is added to the Model, a unique name
would be generated ("particle 3").
These names mean that logging and XML-based IO could use something
nicer and more stable to identify particles. And logging could print
names instead of particle ids since the names are always non-empty and
meaningful.