def process():
     sys.stdout = open(o.snap_dir + "/process" + str(os.getpid()) + ".out", "w")
    
     stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc, o.incl*pi_180, o.omega*pi_180, 
                     o.rel_force, o.r_out)
     planetesimals = get_planetesimals_disk(o.n_disk, o.r_in, o.r_out, o.m0, alpha = o.power, 
                                              seed = o.seed, disk_num = o.iter_i)

     r_step = o.r_in ### set timestep based on period of innermost disk particles ###
     t_end = o.num_T * abs(time_peri) # Current Target Period: 4.0 T

     # Save info in .txt and .p files
     write_info_file(o)

     integrate_disk_flyby(stars, planetesimals, t_end, time_peri, o.nb_end, o.n_steps,
                          r_step, o.snap_dir, o.fout, o.fredir, o.br_dt, o.eta)
    def process():
        sys.stdout = open(o.snap_dir + "/process" + str(os.getpid()) + ".out",
                          "w")

        stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc,
                                         o.incl * pi_180, o.omega * pi_180,
                                         o.rel_force, o.r_out)
        planetesimals = get_planetesimals_disk(o.n_disk,
                                               o.r_in,
                                               o.r_out,
                                               o.m0,
                                               alpha=o.power,
                                               seed=o.seed,
                                               disk_num=o.iter_i)

        r_step = o.r_in  ### set timestep based on period of innermost disk particles ###
        t_end = o.num_T * abs(time_peri)  # Current Target Period: 4.0 T

        # Save info in .txt and .p files
        write_info_file(o)

        integrate_disk_flyby(stars, planetesimals, t_end, time_peri, o.nb_end,
                             o.n_steps, r_step, o.snap_dir, o.fout, o.fredir,
                             o.br_dt, o.eta)
示例#3
0
def handle_input(o, arguments):
    """ run one simulation based on the option parser input or a modified version """
    # Option Parser Dictionary (This isn't a dictionary?!)
    if o.num_format == 3:
        o.sim_number = "%03d" % o.sim_number
    else:
        o.sim_number = "%06d" % o.sim_number

    o.snap_base = o.snap_dir

    o.snap_dir = o.snap_dir + o.sim_number
    o.fout = o.fout + o.sim_number + ".hdf5"

    stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc,
                                     o.incl * pi_180, o.omega * pi_180,
                                     o.rel_force, o.r_out)

    planetesimals = get_planetesimals_disk(o.n_disk,
                                           o.r_in,
                                           o.r_out,
                                           o.m0,
                                           alpha=o.power,
                                           seed=o.seed)

    #print stars
    #print planetesimals

    ps.mkdir(o.snap_dir, safety=True)

    # Write Info File
    f = open(o.snap_dir + "/info.txt", 'a')
    f.write("Simulation ID Number: " + str(o.sim_number) + "\n")
    f.write("Disk Random Seed: " + str(o.seed) + "\n")
    f.write("Number of Iterations: " + str(o.iter) + "\n")
    f.write("Number of Pericenter Arcs: " + str(o.num_T) + "\n")
    f.write("End of N-Body Time: " + str(o.nb_end) + "\n")
    f.write("Mass (Disk Star): " + str(o.m0) + "\n")
    f.write("Mass (Other Star): " + str(o.m1) + "\n")
    f.write("Initial Relative Force: " + str(o.rel_force) + "\n")
    f.write("Bridge Timestep: " + str(o.br_dt) + "\n")
    f.write("Huayno Timestep (eta): " + str(o.eta) + "\n")
    f.write("Inner Disk Radius: " + str(o.r_in) + "\n")
    f.write("Outer Disk Radius: " + str(o.r_out) + "\n")
    f.write("Number of Disk Particles: " + str(o.n_disk) + "\n")
    f.write("Disk Particle Power Law: " + str(o.power) + "\n")
    f.write("Orbit Pericenter: " + str(o.peri) + "\n")
    f.write("Orbit Eccentricity: " + str(o.ecc) + "\n")
    f.write("Orbit Inclination: " + str(o.incl) + "\n")
    f.write("Orbit Argument of Periapsis: " + str(o.omega) + "\n")
    f.write("Number of Steps: " + str(o.n_steps) + "\n")
    f.close()

    # Write 'o' dictionary into file (using Pickle)
    pickle_f = open(o.snap_dir + "/info.p", "wb")
    pickle.dump(o, pickle_f)
    pickle_f.close()

    r_step = o.r_in  ### set timestep based on period of innermost disk particles ###
    t_end = o.num_T * abs(time_peri)  # Current Target Period: 4.0 T

    #t_end = 1300.0 | units.yr

    def process():
        integrate_disk_flyby(stars, planetesimals, t_end, time_peri, o.nb_end,
                             o.n_steps, r_step, o.snap_dir, o.fout, o.fredir,
                             o.br_dt, o.eta)

    p = Process(target=process)
    p.start()

    return o, p
                      help="redirection file [%default]")
    result.add_option(
        "--br_dt",
        dest="br_dt",
        type="float",
        default=0.1,
        help="bridge timestep -- fraction of inner disk period [%default]"
    )  # Bridge timestep here
    return result


if __name__ in ('__main__', '__plot__'):
    o, arguments = new_option_parser().parse_args()

    stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc,
                                     o.incl * pi_180, o.omega * pi_180,
                                     o.rel_force, o.r_out)
    planetesimals = get_planetesimals_disk(o.n_disk, o.r_in, o.r_out, o.m0)

    #print stars
    #print planetesimals

    # Number of Periods
    num_T = 10.0

    try:
        os.mkdir(o.snap_dir)
    except:
        print "\t(", o.snap_dir, "already exists)"

    # Write Info Files
def handle_input(o, arguments):
  """ run one simulation based on the option parser input or a modified version """
  # Option Parser Dictionary (This isn't a dictionary?!)  
  if o.num_format == 3:
     o.sim_number = "%03d" % o.sim_number
  else:
     o.sim_number = "%06d" % o.sim_number

  o.snap_base = o.snap_dir

  o.snap_dir = o.snap_dir + o.sim_number
  o.fout = o.fout + o.sim_number + ".hdf5"
  
  stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc, o.incl*pi_180, o.omega*pi_180, 
                     o.rel_force, o.r_out)
  
  planetesimals = get_planetesimals_disk(o.n_disk, o.r_in, o.r_out, o.m0, alpha = o.power, seed = o.seed)
  
  #print stars
  #print planetesimals

  ps.mkdir(o.snap_dir, safety = True)

  # Write Info File
  f = open(o.snap_dir + "/info.txt", 'a')
  f.write("Simulation ID Number: " + str(o.sim_number) + "\n")
  f.write("Disk Random Seed: " + str(o.seed) + "\n")
  f.write("Number of Iterations: " + str(o.iter) + "\n")
  f.write("Number of Pericenter Arcs: " + str(o.num_T) + "\n")
  f.write("End of N-Body Time: " + str(o.nb_end) + "\n")
  f.write("Mass (Disk Star): " + str(o.m0) + "\n")
  f.write("Mass (Other Star): " + str(o.m1) + "\n")
  f.write("Initial Relative Force: " + str(o.rel_force) + "\n")
  f.write("Bridge Timestep: " + str(o.br_dt) + "\n")
  f.write("Huayno Timestep (eta): " + str(o.eta) + "\n")
  f.write("Inner Disk Radius: " + str(o.r_in) + "\n")
  f.write("Outer Disk Radius: " + str(o.r_out) + "\n")
  f.write("Number of Disk Particles: " + str(o.n_disk) + "\n")
  f.write("Disk Particle Power Law: " + str(o.power) + "\n")
  f.write("Orbit Pericenter: " + str(o.peri) + "\n")
  f.write("Orbit Eccentricity: " + str(o.ecc) + "\n")
  f.write("Orbit Inclination: " + str(o.incl) + "\n")
  f.write("Orbit Argument of Periapsis: " + str(o.omega) + "\n")
  f.write("Number of Steps: " + str(o.n_steps) + "\n")
  f.close()

  # Write 'o' dictionary into file (using Pickle)
  pickle_f = open(o.snap_dir + "/info.p", "wb")
  pickle.dump(o, pickle_f)
  pickle_f.close()

  r_step = o.r_in ### set timestep based on period of innermost disk particles ###
  t_end = o.num_T * abs(time_peri) # Current Target Period: 4.0 T
  #t_end = 1300.0 | units.yr
  
  def process():
     integrate_disk_flyby(stars, planetesimals, t_end, time_peri, o.nb_end, o.n_steps,
                          r_step, o.snap_dir, o.fout, o.fredir, o.br_dt, o.eta)

  p = Process(target = process)
  p.start()

  return o, p
  to reproduce Fig.1. in Lestrade+2011
  """
  
  # Option Parser Dictionary (This isn't a dictionary?!)
  o, arguments  = new_option_parser().parse_args()
  if o.num_format == 3:
     o.sim_number = "%03d" % o.sim_number
  else:
     o.sim_number = "%06d" % o.sim_number

  snap_base = o.snap_dir

  o.snap_dir = o.snap_dir + o.sim_number
  o.fout = o.fout + o.sim_number + ".hdf5"
  
  stars, time_peri = get_orbit_ini(o.m0, o.m1, o.peri, o.ecc, o.incl*pi_180, o.omega*pi_180, 
                     o.rel_force, o.r_out)
  
  planetesimals = get_planetesimals_disk(o.n_disk, o.r_in, o.r_out, o.m0, alpha = o.power, seed = o.seed)
  
  #print stars
  #print planetesimals

  ps.mkdir(o.snap_dir, safety = True)

  # Write Info File
  f = open(o.snap_dir + "/info.txt", 'a')
  f.write("Simulation ID Number: " + str(o.sim_number) + "\n")
  f.write("Disk Random Seed: " + str(o.seed) + "\n")
  f.write("Number of Pericenter Arcs: " + str(o.num_T) + "\n")
  f.write("End of N-Body Time: " + str(o.nb_end) + "\n")
  f.write("Mass (Disk Star): " + str(o.m0) + "\n")