#'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:
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))
#'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] -------------------------------------------------------
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)