Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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)),
Ejemplo n.º 3
0
    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()