code: def particles(self):
          
          sim = self._sim.contents
          ps = []
          if self.testparticle>=0:
              N = 1
          else:
              N = sim.N-sim.N_var 
          
          ParticleList = Particle*N
          ps = ParticleList.from_address(ctypes.addressof(sim._particles.contents)+self.index*ctypes.sizeof(Particle))
          return ps
docs: Access the variational particles corresponding to this set of variational equations.
  
          The function returns a list of particles which are sorted in the same way as those in 
          sim.particles
  
          The particles are pointers and thus can be modified. 
  
          If there are N real particles, this function will also return a list of N particles (all of which are 
          variational particles).