def _posvel(star_mass, planet_mass, a): zeros = posidonius.Axes(0., 0., 0.) #////////// Specify initial position and velocity for a stable orbit #////// Keplerian orbital elements, in the `asteroidal' format of Mercury code #a = 0.018; # semi-major axis (in AU) e = 0.1 # eccentricity i = 5. * posidonius.constants.DEG2RAD # inclination (degrees) p = 0. * posidonius.constants.DEG2RAD # argument of pericentre (degrees) n = 0. * posidonius.constants.DEG2RAD # longitude of the ascending node (degrees) l = 0. * posidonius.constants.DEG2RAD # mean anomaly (degrees) p = (p + n) # Convert to longitude of perihelion !! q = a * (1.0 - e) # perihelion distance position, velocity = posidonius.calculate_cartesian_coordinates( planet_mass, q, e, i, p, n, l, masses=[star_mass], positions=[zeros], velocities=[zeros]) return position, velocity
p = 0. * posidonius.constants.DEG2RAD # argument of pericentre (degrees) n = 0. * posidonius.constants.DEG2RAD # longitude of the ascending node (degrees) l = 0. * posidonius.constants.DEG2RAD # mean anomaly (degrees) p = (p + n) # Convert to longitude of perihelion !! q = a * (1.0 - e) # perihelion distance planet_position, planet_velocity = posidonius.calculate_cartesian_coordinates( planet_mass, q, e, i, p, n, l, masses=[star_mass], positions=[star_position], velocities=[star_velocity]) #////// Initialization of planetary spin planet_obliquity = 40.10704565915762 * posidonius.constants.DEG2RAD # 0.2 rad planet_rotation_period = 240. # hours planet_angular_frequency = posidonius.constants.TWO_PI / ( planet_rotation_period / 24.) # days^-1 # Pseudo-synchronization period #planet_keplerian_orbital_elements = posidonius.calculate_keplerian_orbital_elements(planet_mass, planet_position, planet_velocity, masses=[star_mass], positions=[star_position], velocities=[star_velocity]) #planet_semi_major_axis = planet_keplerian_orbital_elements[0] #planet_eccentricity = planet_keplerian_orbital_elements[2]
p = 0. * posidonius.constants.DEG2RAD # argument of pericentre (degrees) n = 0. * posidonius.constants.DEG2RAD # longitude of the ascending node (degrees) l = 0. * posidonius.constants.DEG2RAD # mean anomaly (degrees) p = (p + n) # Convert to longitude of perihelion !! q = a * (1.0 - e) # perihelion distance star2_position, star2_velocity = posidonius.calculate_cartesian_coordinates( star2_mass, q, e, i, p, n, l, masses=[star1_mass], positions=[star1_position], velocities=[star1_velocity]) #////// Initialization of star2ary spin star2_obliquity = 5.0 * posidonius.constants.DEG2RAD # 0.2 rad star2_rotation_period = 70. # hours star2_angular_frequency = posidonius.constants.TWO_PI / ( star2_rotation_period / 24.) # days^-1 # Pseudo-synchronization period #star2_keplerian_orbital_elements = posidonius.calculate_keplerian_orbital_elements(star2_mass, star2_position, star2_velocity, masses=[star1_mass], positions=[star1_position], velocities=[star1_velocity]) #star2_semi_major_axis = star2_keplerian_orbital_elements[0] #star2_eccentricity = star2_keplerian_orbital_elements[2]