Reproduction package for "BH-BH mergers with & without EM counterpart: A model for stable tertiary mass transfer in hierarchical triple systems"

This is a basic reproduction package for the paper "BH-BH mergers with & without EM counterpart: A model for stable tertiary mass transfer in hierarchical triple systems" by Kummer et al. (2024).

Software prerequisites

To run the scripts in this package, the following software has been used:

  • OS: MacOS Big Sur v11.6
  • python v3.10.11
  • numpy v1.23.5
  • pandas v1.5.1
  • matplotlib v3.7.1
  • scipy v1.10.1
  • AMUSE with SeBa Although not necessary to run all codes.

Intermediate and final data products

The data.tar.gz package contains all the data files necessary for producing intermediate and final products of the paper.

Package contents

This package contains the following data:

data_orig: This directory contains the sample of all simulated triple star systems relevant for this project. The directory contains the following folders and files:

  • lum_rd_pop_z0d005_test & lum_rdc_pop_z0d005_test_extended_a_out: Evolutionary data of individual triple star systems that evolve chemically homogeneous with metallicity Z=0.005 from the ZAMS up to the moment of interaction.
  • lum_rd_pop_z0d0005_test: Evolutionary data of individual triple star systems that evolve chemically homogeneous with metallicity Z=0.0005 from the ZAMS up to the moment of interaction .
  • Collect_TMT.py: Filters and saves the systems that undergo TMT with a BHBH inner binary.
  • input_data_lum_z0d005.csv: File produced by running Collect_TMT.py and used as input for the mass transfer scripts.
  • input_data_lum_z0d0005.csv: File produced by running Collect_TMT.py and used as input for the mass transfer scripts.

data_siwek2023: This directory contains orbital evolution parameters of a binary surrounded by a CBD which are used in the model. The data originates from Siwek et al. (2023).

data_example_system: This directory contains output data for the example system discussed in Section 4 of the paper.

data_models: This directory contains output data for the population of triple stars discussed in Section 5 of the paper. The metallicity of the population has been denoted in the filenames by Z005 or Z0005, corresponding to Z=0.005 and Z=0.0005, respectively. The high_density files refer to a gas density of 10^-8 g/cm^3 and nuclear mass transfer rate. The low_density files refer to a gas density of 10^-10 g/cm^3 and thermal mass transfer rate. The thermal_high_density files refer to a gas density of 10^-8 g/cm^3 and thermal mass transfer rate. The nuclear_low_density files refer to a gas density of 10^-10 g/cm^3 and nuclear mass transfer rate.

Scripts

The scripts.tar.gz package contains the python scripts that simulates the TMT phase and calculates the merger rates of BHBH mergers.

Package contents

TMT_model_example.py: This script calculates the orbital evolution of an example system during TMT. Creates output files in the data_example_system directory.

TMT_model.py: This script calculates the orbital evolution for a set of input systems during TMT. Creates output files in the data_models directory.

TMT_model_GW.py: This script calculates the orbital evolution for a set of input systems during TMT and the ensuing gravitational-wave inspiral. Creates output files in the data_models directory.

merger_rate_density.py: This script calculates the merger rate of the BHBH systems simulated with the TMT model and is used to reproduce Figure 9 and obtain the data in Table A.2 of the paper.

Running the TMT model

Almost all the options for running the TMT models can be found at the end of the files. TMT_model.py and TMT_model_GW.py need an input file. By default this is the ../data/data_orig/input_data_lum_z0d005.csv file, but can also be replaced by ../data/data_orig/input_data_lum_z0d0005.csv.

The output filename can be set in the print_systems() function.

When running the script from the command line, various arguments can be passed along. We give an overview of the options:

  • --target_time: total simulation time (default: 13.5 Gyr). Important that this is longer than the mass-transfer timescale
  • --tau_mt: Mass-transfer timescale (default: 'nuclear', options: ['nuclear', 'thermal'])
  • --density: Gas density during ballistic accretion (default: 10^-8 g/cm^3)
  • --c_s: Sound speed in gas during ballistic accretion (default: 3e6 cm/s)
  • --include_cbd: Allow formation of CBD (default: 'true', options: ['true', 'false'])
  • --include_gdf: Include gravitational drag forces (default: true, options: ['true', 'false'])
  • --include_hydr: Include hydrodynamic drag forces (default: true, options: ['true', 'false'])
  • --outflow: Type of mass outflow from inner binary during CBD (default: 'false', options: ['false', 'iso'])
  • --ecc_GDF: Eccentricity evolution during gas drag phase (default: 'false', options: ['false', 'true'])
  • --I_GDF: Prescription for the wake of the GDF (default: 'Ostriker99', options: ['Ostriker99', 'Kim08'])
  • --retrograde: Modified torques for retrograde CBDs (default: 'false', options: ['false', 'true'])

By default, the script runs the Basic model. To run the different model variations presented in the paper, we include the following arguments:

  • Model Simple: --include_cbd 'false'
  • Model Basic+BinGDF: --I_GDF 'Kim08'
  • Model Basic+EccGDF: --ecc_GDF 'true'
  • Model Basic+Iso: --outflow 'iso'
  • Model Basic+Retro: --retrograde 'true'
  • Model Advanced: --I_GDF 'Kim08' --ecc_GDF 'true' --outflow 'iso' --retrograde 'true'
  • Model Basic+NoDrag: --include_gdf 'false' --include_hydr 'false'
  • Model Advanced+NoDrag: --include_gdf 'false' --include_hydr 'false' --I_GDF 'Kim08' --ecc_GDF 'true' --outflow 'iso' --retrograde 'true'

At the start of the System class, you can specificy whether your accretor is a compact object or not with the self.compact_object option, and in case you have the SeBa code installed with AMUSE, you can turn it on to determine the stability of the mass transfer with the self.use_seba option.

Figures

The figures.tar.gz package contains jupyter notebooks that reproduce each figure and the tables with data from the paper (with the exclusion of Figures 1 & 3, which are cartoons).