コード例 #1
0
def make_binary_star(mprim, msec, semimajor_axis, eccentricity):
    double_star = Particle()
    double_star.is_binary = True
    double_star.mass = mprim + msec
    double_star.semimajor_axis = semimajor_axis
    double_star.eccentricity = eccentricity

    period = (2 * numpy.pi *
              (semimajor_axis * semimajor_axis * semimajor_axis /
               (constants.G * double_star.mass)).sqrt())
    print("Period =", period.as_string_in(units.yr))

    stars = new_binary_from_orbital_elements(mprim,
                                             msec,
                                             semimajor_axis,
                                             eccentricity,
                                             G=constants.G)
    stars.is_binary = False
    double_star.child1 = stars[0]
    double_star.child1.name = "primary"

    double_star.child2 = stars[1]
    double_star.child2.name = "secondary"

    for star in stars:
        star.radius = (star.mass.value_in(units.MSun)**0.8) | units.RSun

    return double_star, stars