def _spin(obliquity, rotation_period, star_mass, planet_mass, planet_position, planet_velocity): zeros = posidonius.Axes(0., 0., 0.) #////// Initialization of planetary spin angular_frequency = posidonius.constants.TWO_PI / (rotation_period / 24. ) # days^-1 keplerian_orbital_elements = posidonius.calculate_keplerian_orbital_elements( planet_mass, planet_position, planet_velocity, masses=[star_mass], positions=[zeros], velocities=[zeros]) inclination = keplerian_orbital_elements[3] spin = posidonius.calculate_spin(angular_frequency, inclination, obliquity) return 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] #planet_semi_major_axis = a #planet_eccentricity = e #planet_pseudo_synchronization_period = posidonius.calculate_pseudo_synchronization_period(planet_semi_major_axis, planet_eccentricity, star_mass, planet_mass) # days #planet_angular_frequency = posidonius.constants.TWO_PI/(planet_pseudo_synchronization_period) # days^-1 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_inclination = planet_keplerian_orbital_elements[3] planet_spin = calculate_spin(planet_angular_frequency, planet_inclination, planet_obliquity, planet_position, planet_velocity) k2pdelta = 2.465278e-3 # Terrestrial planets (no gas) planet_tides_parameters = { "dissipation_factor_scale": 100.0, "dissipation_factor": 2. * posidonius.constants.K2 * k2pdelta / (3. * np.power(planet_radius, 5)),
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] #star2_semi_major_axis = a #star2_eccentricity = e #star2_pseudo_synchronization_period = posidonius.calculate_pseudo_synchronization_period(star2_semi_major_axis, star2_eccentricity, star1_mass, star2_mass) # days #star2_angular_frequency = posidonius.constants.TWO_PI/(star2_pseudo_synchronization_period) # days^-1 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_inclination = star2_keplerian_orbital_elements[3] star2_spin = posidonius.calculate_spin(star2_angular_frequency, star2_inclination, star2_obliquity) star2_tides_parameters = { "dissipation_factor_scale": 1.0, "dissipation_factor": 2.006 * 3.845764e4, "love_number": 0.307, } #star2_tides = posidonius.effects.tides.CentralBody(star2_tides_parameters) star2_tides = posidonius.effects.tides.OrbitingBody(star2_tides_parameters) #star2_tides = posidonius.effects.tides.Disabled()