Exemple #1
0
    #'alpha': 1.0e-2,
    #'surface_density_normalization': disk_surface_density_normalization_SI * (1.0/posidonius.constants.M_SUN) * posidonius.constants.AU**2, # Msun.AU^-2
    #'mean_molecular_weight': 2.4,
    #}
    #star_disk = posidonius.effects.disk.CentralBody(disk_properties)
    #star_disk = posidonius.effects.disk.OrbitingBody()
    star_disk = posidonius.effects.disk.Disabled()
    #
    #star_evolution = posidonius.GalletBolmont2017(star_mass) # mass = 0.30 .. 1.40
    #star_evolution = posidonius.BolmontMathis2016(star_mass) # mass = 0.40 .. 1.40
    #star_evolution = posidonius.Baraffe2015(star_mass) # mass = 0.01 .. 1.40
    #star_evolution = posidonius.Leconte2011(star_mass) # mass = 0.01 .. 0.08
    #star_evolution = posidonius.Baraffe1998(star_mass) # Sun (mass = 1.0) or M-Dwarf (mass = 0.1)
    #star_evolution = posidonius.LeconteChabrier2013(False) # Jupiter without dissipation of dynamical tides
    #star_evolution = posidonius.LeconteChabrier2013(True) # Jupiter with dissipation of dynamical tides
    star_evolution = posidonius.NonEvolving()
    #
    star = posidonius.Particle(star_mass, star_radius, star_radius_of_gyration,
                               star_position, star_velocity, star_spin)
    star.set_tides(star_tides)
    star.set_rotational_flattening(star_rotational_flattening)
    star.set_general_relativity(star_general_relativity)
    star.set_wind(star_wind)
    star.set_disk(star_disk)
    star.set_evolution(star_evolution)
    universe.add_particle(star)

    ############################################################################
    planet_mass_factor = 318
    # [start correction] -------------------------------------------------------
    # To reproduce Bolmont et al. 2015:
Exemple #2
0
    def test_m_dwarf_non_evolving(self):
        current_function_name = inspect.stack()[0][3][
            5:]  # Remove first 5 characters "test_"
        expected_json_filename, json_filename = common.setup(
            self.current_dirname, self.current_filename, current_function_name)

        initial_time, time_step, time_limit, historic_snapshot_period, recovery_snapshot_period = common.simulation_properties(
        )
        consider_effects = posidonius.ConsiderEffects({
            "tides": True,
            "rotational_flattening": True,
            "general_relativity": True,
            "disk": True,
            "wind": True,
            "evolution": True,
        })
        general_relativity_implementation = "Kidder1995"  # Assumes one central massive body
        #general_relativity_implementation = "Anderson1975" # Assumes one central massive body
        #general_relativity_implementation = "Newhall1983" # Considers all bodies
        universe = posidonius.Universe(initial_time, time_limit, time_step,
                                       recovery_snapshot_period,
                                       historic_snapshot_period,
                                       consider_effects)

        star_mass = 0.08  # Solar masses
        star_rotation_period = 70.  # hours
        star_dissipation_factor_scale = 1.0
        star_position = posidonius.Axes(0., 0., 0.)
        star_velocity = posidonius.Axes(0., 0., 0.)

        #star_evolution = posidonius.Baraffe1998(star_mass) # M-Dwarf (mass = 0.10) or SolarLike ConstantDissipation (mass = 1.0)
        #star_evolution = posidonius.Baraffe2015(star_mass) # mass = 0.01 .. 1.40
        #star_evolution = posidonius.Leconte2011(star_mass) # BrownDwarf (mass = 0.01 .. 0.08)
        #star_evolution = posidonius.BolmontMathis2016(star_mass) # SolarLike Evolving dissipation (mass = 0.40 .. 1.40)
        #star_evolution = posidonius.GalletBolmont2017(star_mass) # SolarLike Evolving dissipation (mass = 0.30 .. 1.40)
        #star_evolution = posidonius.LeconteChabrier2013(False) # Jupiter without dissipation of dynamical tides
        #star_evolution = posidonius.LeconteChabrier2013(True) # Jupiter with dissipation of dynamical tides
        star_evolution = posidonius.NonEvolving()
        star = common.m_dwarf(star_mass, star_dissipation_factor_scale,
                              star_position, star_velocity,
                              star_rotation_period,
                              general_relativity_implementation,
                              star_evolution)
        universe.add_particle(star)
        common.basic_configuration(universe)

        ############################################################################
        whfast_alternative_coordinates = "Jacobi"
        #whfast_alternative_coordinates="DemocraticHeliocentric"
        #whfast_alternative_coordinates="WHDS"
        #universe.write(json_filename, integrator="LeapFrog")
        #universe.write(json_filename, integrator="IAS15")
        universe.write(
            json_filename,
            integrator="WHFast",
            whfast_alternative_coordinates=whfast_alternative_coordinates)

        if not os.path.exists(expected_json_filename):
            shutil.copyfile(json_filename, expected_json_filename)

        self.assertTrue(
            filecmp.cmp(json_filename, expected_json_filename, shallow=False),
            "Generated JSON case is not equal to the expected one: {} {}".
            format(json_filename, expected_json_filename))
        shutil.rmtree(os.path.dirname(json_filename))
Exemple #3
0
    #'alpha': 1.0e-2,
    #'surface_density_normalization': disk_surface_density_normalization_SI * (1.0/posidonius.constants.M_SUN) * posidonius.constants.AU**2, # Msun.AU^-2
    #'mean_molecular_weight': 2.4,
    #}
    #planet1_disk = posidonius.effects.disk.CentralBody(disk_properties)
    #planet1_disk = posidonius.effects.disk.OrbitingBody()
    planet1_disk = posidonius.effects.disk.Disabled()
    #
    #planet1_evolution = posidonius.GalletBolmont2017(planet1_mass) # mass = 0.30 .. 1.40
    #planet1_evolution = posidonius.BolmontMathis2016(planet1_mass) # mass = 0.40 .. 1.40
    #planet1_evolution = posidonius.Baraffe2015(planet1_mass) # mass = 0.01 .. 1.40
    #planet1_evolution = posidonius.Leconte2011(planet1_mass) # mass = 0.01 .. 0.08
    #planet1_evolution = posidonius.Baraffe1998(planet1_mass) # Sun (mass = 1.0) or M-Dwarf (mass = 0.1)
    #planet1_evolution = posidonius.LeconteChabrier2013(False) # Jupiter without dissipation of dynamical tides
    #planet1_evolution = posidonius.LeconteChabrier2013(True) # Jupiter with dissipation of dynamical tides
    planet1_evolution = posidonius.NonEvolving()
    #
    planet1 = posidonius.Particle(planet1_mass, planet1_radius,
                                  planet1_radius_of_gyration, planet1_position,
                                  planet1_velocity, planet1_spin)
    planet1.set_tides(planet1_tides)
    planet1.set_rotational_flattening(planet1_rotational_flattening)
    planet1.set_general_relativity(planet1_general_relativity)
    planet1.set_wind(planet1_wind)
    planet1.set_disk(planet1_disk)
    planet1.set_evolution(planet1_evolution)
    universe.add_particle(planet1)

    ############################################################################
    planet2_mass_factor = 10.0
    # [start correction] -------------------------------------------------------
Exemple #4
0
def basic_configuration(universe):
    if len(universe._data['particles']) == 0:
        raise Exception("Star needs to be already present!")
    star_mass = universe._data['particles'][0]['mass']
    ############################################################################
    planet1_mass_factor = 1.0
    planet1_mass = planet1_mass_factor * posidonius.constants.M_EARTH  # Solar masses (3.0e-6 solar masses = 1 earth mass)

    planet1_dissipation_factor_scale = 1.0
    planet1_semimajoraxis = 0.5
    planet1_position, planet1_velocity = _posvel(star_mass, planet1_mass,
                                                 planet1_semimajoraxis)

    planet1_obliquity = 11.459156 * posidonius.constants.DEG2RAD  # 0.2 rad
    planet1_rotation_period = 24.  # hours
    planet1_spin = _spin(planet1_obliquity, planet1_rotation_period, star_mass,
                         planet1_mass, planet1_position, planet1_velocity)

    planet1_evolution = posidonius.NonEvolving()
    planet1 = earth_like(planet1_mass, planet1_dissipation_factor_scale,
                         planet1_position, planet1_velocity, planet1_spin,
                         planet1_evolution)
    universe.add_particle(planet1)

    ############################################################################
    planet2_mass_factor = 0.00095
    planet2_mass = planet2_mass_factor * posidonius.constants.M_EARTH  # Solar masses (3.0e-6 solar masses = 1 earth mass)

    planet2_dissipation_factor_scale = 1.0
    planet2_semimajoraxis = 5.0
    planet2_position, planet2_velocity = _posvel(star_mass, planet2_mass,
                                                 planet2_semimajoraxis)

    planet2_obliquity = 11.459156 * posidonius.constants.DEG2RAD  # 0.2 rad
    planet2_rotation_period = 24.  # hours
    planet2_spin = _spin(planet2_obliquity, planet2_rotation_period, star_mass,
                         planet2_mass, planet2_position, planet2_velocity)

    planet2_evolution = posidonius.LeconteChabrier2013(
        False)  # Jupiter without dissipation of dynamical tides
    planet2 = jupiter_like(planet2_mass, planet2_dissipation_factor_scale,
                           planet2_position, planet2_velocity, planet2_spin,
                           planet2_evolution)
    universe.add_particle(planet2)

    ############################################################################
    planet3_mass_factor = 0.00095
    planet3_mass = planet3_mass_factor * posidonius.constants.M_EARTH  # Solar masses (3.0e-6 solar masses = 1 earth mass)

    planet3_dissipation_factor_scale = 1.0
    planet3_semimajoraxis = 10.0
    planet3_position, planet3_velocity = _posvel(star_mass, planet3_mass,
                                                 planet3_semimajoraxis)

    planet3_obliquity = 11.459156 * posidonius.constants.DEG2RAD  # 0.2 rad
    planet3_rotation_period = 24.  # hours
    planet3_spin = _spin(planet3_obliquity, planet3_rotation_period, star_mass,
                         planet3_mass, planet3_position, planet3_velocity)

    planet3_evolution = posidonius.NonEvolving()
    planet3 = jupiter_like(planet3_mass, planet3_dissipation_factor_scale,
                           planet3_position, planet3_velocity, planet3_spin,
                           planet3_evolution)
    universe.add_particle(planet3)