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
#planet1_semi_major_axis = planet1_keplerian_orbital_elements[0] #planet1_eccentricity = planet1_keplerian_orbital_elements[2] #planet1_semi_major_axis = a #planet1_eccentricity = e #planet1_pseudo_synchronization_period = posidonius.calculate_pseudo_synchronization_period(planet1_semi_major_axis, planet1_eccentricity, star_mass, planet1_mass) # days #planet1_angular_frequency = posidonius.constants.TWO_PI/(planet1_pseudo_synchronization_period) # days^-1 planet1_keplerian_orbital_elements = posidonius.calculate_keplerian_orbital_elements( planet1_mass, planet1_position, planet1_velocity, masses=[star_mass], positions=[star_position], velocities=[star_velocity]) planet1_inclination = planet1_keplerian_orbital_elements[3] planet1_spin = posidonius.calculate_spin(planet1_angular_frequency, planet1_inclination, planet1_obliquity) k2pdelta = 2.465278e-3 # Terrestrial planet1s (no gas) planet1_tides_parameters = { "dissipation_factor_scale": 1.0, "dissipation_factor": 2. * posidonius.constants.K2 * k2pdelta / (3. * np.power(planet1_radius, 5)), "love_number": 0.305, } planet1_tides_model = posidonius.effects.tides.ConstantTimeLag( planet1_tides_parameters) #planet1_tides = posidonius.effects.tides.CentralBody(planet1_tides_model)
#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) #planet_angular_frequency = posidonius.constants.TWO_PI/(planet_pseudo_synchronization_period/24.) # 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 = posidonius.calculate_spin(planet_angular_frequency, planet_inclination, planet_obliquity) k2pdelta = 2.465278e-3 # Terrestrial planets (no gas) planet_tides_parameters = { "dissipation_factor_scale": 1.0, "dissipation_factor": 2. * posidonius.constants.K2 * k2pdelta / (3. * np.power(planet_radius, 5)), "love_number": 0.305, } planet_tides_model = posidonius.effects.tides.ConstantTimeLag( planet_tides_parameters) #planet_tides = posidonius.effects.tides.CentralBody(planet_tides_model)
#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() # star2_rotational_flattening_parameters = { "love_number": star2_tides_parameters["love_number"] } #star2_rotational_flattening = posidonius.effects.rotational_flattening.CentralBody(star2_rotational_flattening_parameters) star2_rotational_flattening = posidonius.effects.rotational_flattening.OrbitingBody(