TeamCOMPAS / COMPAS

COMPAS rapid binary population synthesis code
http://compas.science
MIT License
64 stars 66 forks source link

Understanding the semiMajorAxis values in the output #658

Closed AstrophysicsAndPython closed 2 years ago

AstrophysicsAndPython commented 2 years ago

A DNS binary I evolved showed

m1 = 9.08924 m2 = 6.90856 a0 = 2.08792

However, when I read the BSE_Detailed_Output h5 file, the SemiMajorAxis key gives me a starting value of 448.969010759815. I want to know what is the conversion factor between these values, is it the same for all the values generated or am I missing something?

I am not using any fixed values, allowing the COMPAS to evolve from the default distributions using pythonSubmitDemo.py.

For the binary above, use the random_seed = 2135435954 with the configuration below

initial_mass    = None                                      # initial mass for SSE
initial_mass_1  = None                                      # primary initial mass for BSE
initial_mass_2  = None                                      # secondary initial mass for BSE

mass_ratio      = None

eccentricity    = None                                      # eccentricity for BSE
semi_major_axis = None                                      # semi-major axis for BSE
orbital_period  = None                                      # orbital period for BSE

use_mass_loss = True
mass_transfer = True
detailed_output = True                                      # WARNING: this creates a data heavy file
RLOFPrinting = True
evolve_unbound_systems = False
quiet = False

metallicity = None                                        # metallicity for both SSE and BSE - Solar metallicity Asplund+2010

allow_rlof_at_birth = True                                  # allow binaries that have one or both stars in RLOF at birth to evolve?
allow_touching_at_birth = False                             # record binaries that have stars touching at birth in output files?

chemically_homogeneous_evolution = 'PESSIMISTIC'            # chemically homogeneous evolution.  Options are 'NONE', 'OPTIMISTIC' and 'PESSIMISTIC'

switch_log = True

common_envelope_alpha = 1.0
common_envelope_lambda = 0.1                                # Only if using 'LAMBDA_FIXED'
common_envelope_lambda_prescription = 'LAMBDA_NANJING'      # Xu & Li 2010
common_envelope_slope_Kruckow = -5.0/6.0
stellar_zeta_prescription = 'SOBERMAN'
common_envelope_revised_energy_formalism = False
common_envelope_maximum_donor_mass_revised_energy_formalism = 2.0
common_envelope_recombination_energy_density = 1.5E13
common_envelope_alpha_thermal = 1.0                         # lambda = alpha_th*lambda_b + (1-alpha_th)*lambda_g
common_envelope_lambda_multiplier = 1.0                     # Multiply common envelope lambda by some constant
common_envelope_allow_main_sequence_survive = True          # Allow main sequence stars to survive CE. Was previously False by default
common_envelope_mass_accretion_prescription = 'ZERO'
common_envelope_mass_accretion_min = 0.04                   # For 'MACLEOD+2014' [Msol]
common_envelope_mass_accretion_max = 0.10                   # For 'MACLEOD+2014' [Msol]
envelope_state_prescription = 'LEGACY'

mass_loss_prescription = 'VINK'
luminous_blue_variable_prescription = 'HURLEY_ADD'
luminous_blue_variable_multiplier = 1.5
overall_wind_mass_loss_multiplier = 1.0
wolf_rayet_multiplier = 1.0
cool_wind_mass_loss_multiplier = 1.0
check_photon_tiring_limit = False

circularise_binary_during_mass_transfer = True
angular_momentum_conservation_during_circularisation = False
mass_transfer_angular_momentum_loss_prescription = 'ISOTROPIC'
mass_transfer_accretion_efficiency_prescription = 'THERMAL'
mass_transfer_fa = 0.5                                      # Only if using mass_transfer_accretion_efficiency_prescription = 'FIXED'
mass_transfer_jloss = 1.0                                   # Only if using mass_transfer_angular_momentum_loss_prescription = 'FIXED'
mass_transfer_rejuvenation_prescription = 'STARTRACK'
mass_transfer_thermal_limit_accretor= 'CFACTOR'
mass_transfer_thermal_limit_C= 10.0
eddington_accretion_factor = 1                              # multiplication Factor for eddington accretion onto NS&BH

case_BB_stability_prescription = 'ALWAYS_STABLE'
zeta_Main_Sequence = 2.0
zeta_Radiative_Envelope_Giant = 6.5

maximum_evolution_time = 13700.0                            # Maximum physical time a system can be evolved [Myrs]
maximum_number_timesteps = 99999
timestep_multiplier = 1.0                                   # Optional multiplier relative to default time step duration

initial_mass_function = 'KROUPA'
initial_mass_min = 5.0                                      # Use 1.0 for LRNe, 5.0 for DCOs  [Msol]
initial_mass_max = 150.0                                    # Stellar tracks extrapolated above 50 Msol (Hurley+2000) [Msol]

initial_mass_power = 0.0

semi_major_axis_distribution = 'FLATINLOG'
semi_major_axis_min = 0.01                                  # [AU]
semi_major_axis_max = 1000.0                                # [AU]

orbital_period_distribution = 'FLATINLOG'
orbital_period_min = 1.1                                    # [days]
orbital_period_max = 1000                                   # [days]

mass_ratio_distribution = 'FLAT'
mass_ratio_min = 0.01
mass_ratio_max = 1.0

minimum_secondary_mass = 0.1                                # Brown dwarf limit  [Msol]

eccentricity_distribution = 'FLAT'
eccentricity_min = 0.0
eccentricity_max = 1.0

metallicity_distribution = 'LOGUNIFORM'
metallicity_min = 0.0001
metallicity_max = 0.03

pulsar_birth_magnetic_field_distribution = 'ZERO'
pulsar_birth_magnetic_field_min = 11.0                      # [log10(B/G)]
pulsar_birth_magnetic_field_max = 13.0                      # [log10(B/G)]

pulsar_birth_spin_period_distribution = "ZERO"
pulsar_birth_spin_period_min = 10.0                         # [ms]
pulsar_birth_spin_period_max = 100.0                        # [ms]

pulsar_magnetic_field_decay_timescale = 1000.0              # [Myr]
pulsar_magnetic_field_decay_massscale = 0.025               # [Msol]
pulsar_minimum_magnetic_field = 8.0                         # [log10(B/G)]

evolvePulsars = True

rotational_velocity_distribution = 'ZERO'

neutron_star_equation_of_state = 'SSE'

neutrino_mass_loss_BH_formation = "FIXED_MASS"              # "FIXED_FRACTION"
neutrino_mass_loss_BH_formation_value = 0.1                 # Either fraction or mass (Msol) to lose

remnant_mass_prescription   = 'FRYER2012'
fryer_supernova_engine      = 'DELAYED'
black_hole_kicks            = 'FALLBACK'
kick_magnitude_distribution = 'MAXWELLIAN'

kick_magnitude_sigma_CCSN_NS = 265.0                        #  [km/s]
kick_magnitude_sigma_CCSN_BH = 265.0                        #  [km/s]
kick_magnitude_sigma_ECSN    = 30.0                         #  [km/s]
kick_magnitude_sigma_USSN    = 30.0                         #  [km/s]

fix_dimensionless_kick_magnitude = -1
kick_direction = 'ISOTROPIC'
kick_direction_power = 0.0
kick_scaling_factor = 1.0
kick_magnitude_maximum = -1.0

kick_magnitude_random   = None                              # (SSE) used to draw the kick magnitude for the star should it undergo a supernova event
kick_magnitude          = None                              # (SSE) (drawn) kick magnitude for the star should it undergo a supernova event [km/s]

kick_magnitude_random_1 = None                              # (BSE) used to draw the kick magnitude for the primary star should it undergo a supernova event
kick_magnitude_1        = None                              # (BSE) (drawn) kick magnitude for the primary star should it undergo a supernova event [km/s]
kick_theta_1            = None                              # (BSE) angle between the orbital plane and the 'z' axis of the supernova vector for the primary star should it undergo a supernova event [radians]
kick_phi_1              = None                              # (BSE) angle between 'x' and 'y', both in the orbital plane of the supernova vector, for the primary star should it undergo a supernova event [radians]
kick_mean_anomaly_1     = None                              # (BSE) mean anomaly at the instant of the supernova for the primary star should it undergo a supernova event - should be uniform in [0, 2pi) [radians]

kick_magnitude_random_2 = None                              # (BSE) used to draw the kick velocity for the secondary star should it undergo a supernova event
kick_magnitude_2        = None                              # (BSE) (drawn) kick magnitude for the secondary star should it undergo a supernova event [km/s]
kick_theta_2            = None                              # (BSE) angle between the orbital plane and the 'z' axis of the supernova vector for the secondary star should it undergo a supernova event [radians]
kick_phi_2              = None                              # (BSE) angle between 'x' and 'y', both in the orbital plane of the supernova vector, for the secondary star should it undergo a supernova event [radians]
kick_mean_anomaly_2     = None                              # (BSE) mean anomaly at the instant of the supernova for the secondary star should it undergo a supernova event - should be uniform in [0, 2pi) [radians]

muller_mandel_kick_multiplier_BH = 200.0                    # scaling prefactor for BH kicks when using the 'MULLERMANDEL' kick magnitude distribution
muller_mandel_kick_multiplier_NS = 400.0                    # scaling prefactor for NS kicks when using the 'MULLERMANDEL' kick magnitude distribution

pair_instability_supernovae = True
PISN_lower_limit = 60.0                                     # Minimum core mass for PISN [Msol]
PISN_upper_limit = 135.0                                    # Maximum core mass for PISN [Msol]

pulsation_pair_instability = True
PPI_lower_limit = 35.0                                      # Minimum core mass for PPI [Msol]
PPI_upper_limit = 60.0                                      # Maximum core mass for PPI [Msol]

pulsational_pair_instability_prescription = 'MARCHANT'

maximum_neutron_star_mass = 2.5  #  [Msol]

log_level           = 0
log_classes         = []

debug_level         = 0
debug_classes       = []

logfile_name_prefix = None
logfile_type        = 'HDF5'

hdf5_chunk_size     = 100000
hdf5_buffer_size    = 1
reinhold-willcox commented 2 years ago

Hi @noonuu, thanks for reaching out! The values are being recorded with different units as 2.08792 AU = 448.969010759815 Rsol. If you are using python's h5py, you can find the units for a given data file with:

Data[parameter_name].attrs['units']
AstrophysicsAndPython commented 2 years ago

Thank you for your answer :-)