mcfacts.physics.binary.formation

Module for handling the formation of binaries.

mcfacts.physics.binary.formation.add_to_binary_obj(blackholes_binary, blackholes_pro, bh_pro_id_num_binary, id_start_val, fraction_bin_retro, smbh_mass, agn_redshift, disk_bh_pro_orb_ecc_crit)

Create new BH binaries with appropriate parameters.

We take the semi-maj axis, masses, spins, spin angles and generations from the relevant singletons, found in hillsphere.binary_check2, and sort those parameters into disk_bins_bhbh. We then ADD additional parameters relevant only for binaries, including semi-major axis of the binary, semi-major axis of the orbit of the center of mass of the binary around the SMBH, a flag to permit or suppress retrograde binaries, eventually eccentricity and inclination.

Parameters:
  • blackholes_binary (AGNBinaryBlackHole) – Binary black holes

  • blackholes_pro (AGNBlackHole) – Prograde black holes

  • bh_pro_id_num_binary (numpy.ndarray) – ID numbers for the prograde blackholes that will form binaries with int type

  • id_start_val (int) – Starting value for the ID numbers (add 1 to ensure it’s unique)

  • fraction_bin_retro (float) – Fraction of binaries which form retrograde (wrt to the disk gas) around their own center of mass. = 0.0 turns all retrograde BBH at formation into prograde BBH. = 0.5 half of the binaries will be retrograde = 1.0 all binaries will be retrograde.

  • smbh_mass (float) – Mass [M_sun] of the SMBH

  • agn_redshift (float) – Redshift [unitless] of the AGN, used to set d_obs

Returns:

  • blackholes_binary (AGNBinaryBlackHole) – Binary black hole object with new binaries added

  • id_nums (numpy.ndarray) – ID numbers of the new binary black holes with int type

mcfacts.physics.binary.formation.close_encounters_check(id_nums, filing_cabinet, smbh_mass, disk_bh_pro_orb_ecc_crit)

Calculates which prograde objects will have close encounters in this timestep.

Takes as inputs the singleton objects locations,masses & orbital eccentricities, and takes the candidate encounter population from objects with orbital eccentricities damped to < orb_ecc_crit. Among this damped population, checks if their separations are less than the mutual Hill sphere of any 2 adjacent objects. If this is the case, determine the smallest separation pairs (in units of their mutual Hill sphere) to form a set of actual encounters (this module does handle cases where 3 or more bodies might form some set of binaries which would be mutually exclusive; however it does not handle or even flag the implied triple system dynamics). Returns a 2xN array of the relevant indices, for further handling to form actual encounters & assign additional parameters (e.g. angular momentum of the binary).

Parameters:
  • id_nums (float array) – ID numbers of relevant objects (single, prograde, outer disk)

  • filing_cabinet (AGNFilingCabinet) – filing cabinet holding parameters of objects in the disk

  • smbh_mass (float) – Mass [M_sun] of the SMBH

  • disk_bh_pro_orb_ecc_crit (float) – Critical eccentricity [unitless] allowing bin formation and migration

Returns:

encounter_id_nums – array of ID numbers corresponding to objects that will have a close encounter, it has a length of the number of encounters to form (N) and a width of 2.

Return type:

[2,N] int array

mcfacts.physics.binary.formation.divide_types_encounters(id_nums, encounter_categories, filing_cabinet)

Divide ID numbers of close encounter objects by their type.

Takes in the (2,N) array of ID numbers of objects that will encounter each other. Tests each pair to see if it is a BH-BH, BH-star, or star-star pair and returns 3 arrays with ID numbers for objects in each category.

Parameters:
  • id_nums (numpy.ndarray) – ID numbers of objects that will encounter each other

  • encounter_categories (list or numpy.ndarray) – List of types of encounters E.g., [[0, 0], [0, 1], [1, 1]] will return 3 arrays with ID numbers for pairs with BH-BH, BH-star, and star-star types.

  • filing_cabinet (AGNFilingCabinet) – Filing cabinet holding information for all objects in the disk

Returns:

results – Dictionary where the key is the pairing and the value is the (2, N) array of ID numbers

Return type:

dict