コード例 #1
0
ファイル: planets.py プロジェクト: gabogomes/posidonius
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
コード例 #2
0
    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]
コード例 #3
0
    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]