code: def hash(self):
          
          hash_numeric = 't_step=%.3e, t_max=%.2f, np=%d, conc=%.2e' % \
              (self.t_step, self.t_max, self.num_particles, self.concentration())
          hash_list = [hash_numeric, self.particles.short_repr(), repr(self.box),
                       self.psf.hash()]
          return hashlib.md5(repr(hash_list).encode()).hexdigest()
docs: Return an hash for the simulation parameters (excluding ID and EID)
          This can be used to generate unique file names for simulations
          that have the same parameters and just different ID or EID.