示例#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
示例#2
0
    #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)
示例#3
0
    #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(