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