def integrate_disk_flyby(stars, planetesimals, t_end, n_steps, snap_dir,
                         file_out, file_redir, huayno_eta):
    converter = nbody_system.nbody_to_si(1 | units.MSun, 1 | units.AU)

    planetesimals.position += stars[0].position
    planetesimals.velocity += stars[0].velocity

    bodies = ParticlesSuperset([stars, planetesimals])

    if file_redir is None:
        gravity = Huayno(converter, channel_type="sockets",
                         mode="openmp")  # Add this (specify a number of cores)
    elif file_redir == "0":
        gravity = Huayno(converter,
                         channel_type="sockets",
                         redirection="none",
                         mode="openmp")
    else:
        gravity = Huayno(converter,
                         channel_type="sockets",
                         redirection="file",
                         redirect_file=file_redir,
                         mode="openmp")

    gravity.particles.add_particles(bodies)
    gravity.commit_particles()
    gravity.parameters.timestep_parameter = huayno_eta
    time_step = gravity.get_timestep_parameter()
    #gravity.set_inttype_parameter(12)
    #gravity.set_inttype_parameter(8)
    gravity.set_eps2_parameter(0.001 * 0.001)  # Softening Parameter
    print ' ** timestep: ', gravity.get_timestep_parameter()
    print ' ** inttype: ', gravity.get_inttype_parameter()
    print ' ** eps2: ', gravity.get_eps2_parameter(), numpy.sqrt(
        gravity.get_eps2_parameter())

    t0 = time.time()
    evolve_disk_flyby(bodies, gravity, t_end, n_steps, converter, snap_dir,
                      file_out)
    t1 = time.time()
    dt = t1 - t0
    print "Performace data: N =", len(
        bodies), "dt=", dt, "s =", dt / 60.0, "min"

    return
def integrate_disk_flyby(stars, planetesimals, t_end, n_steps,
                         snap_dir, file_out, file_redir, huayno_eta):
  converter=nbody_system.nbody_to_si(1|units.MSun,1|units.AU)
  
  planetesimals.position += stars[0].position
  planetesimals.velocity += stars[0].velocity
  
  bodies = ParticlesSuperset([stars, planetesimals])
  
  if file_redir is None:
    gravity = Huayno(converter, channel_type="sockets",
                       mode="openmp") # Add this (specify a number of cores)
  elif file_redir=="0":
    gravity = Huayno(converter, channel_type="sockets", redirection="none",
                       mode="openmp")
  else:
    gravity = Huayno(converter, channel_type="sockets", redirection="file", redirect_file=file_redir,
                       mode="openmp")
                       
  gravity.particles.add_particles(bodies)
  gravity.commit_particles()
  gravity.parameters.timestep_parameter = huayno_eta
  time_step = gravity.get_timestep_parameter()
  #gravity.set_inttype_parameter(12)
  #gravity.set_inttype_parameter(8)
  gravity.set_eps2_parameter(0.001*0.001) # Softening Parameter
  print ' ** timestep: ', gravity.get_timestep_parameter()
  print ' ** inttype: ', gravity.get_inttype_parameter()
  print ' ** eps2: ', gravity.get_eps2_parameter(), numpy.sqrt(gravity.get_eps2_parameter())
  
  t0 = time.time()
  evolve_disk_flyby(bodies, gravity, 
                    t_end, n_steps, converter, snap_dir, file_out)
  t1= time.time()
  dt = t1-t0
  print "Performace data: N =", len(bodies), "dt=", dt, "s =", dt/60.0, "min"
  
  return