mcfacts.physics.gw

Module for calculating the gw strain and freq of a binary.

mcfacts.physics.gw.bbh_gw_params(bin_mass_1, bin_mass_2, bin_sep, smbh_mass, timestep_duration_yr, old_bbh_freq, agn_redshift)

Wrapper function to calculate GW strain and frequency for BBH at the end of each timestep

Parameters:
  • blackholes_binary (AGNBinaryBlackHole) – Binary black hole parameters

  • bh_binary_id_num_gw (numpy.ndarray) – ID numbers of binaries with separations below \(mathtt_{min_bbh_gw_separation}\) with float type

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

  • timestep_duration_yr (float) – Length of timestep [yr]

  • old_bbh_freq (numpy.ndarray) – Previous GW frequency [Hz] with float type

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

Returns:

  • char_strain (numpy.ndarray) – Characteristic strain [unitless] with float type

  • nu_gw (numpy.ndarray) – GW frequency [Hz] with float type

mcfacts.physics.gw.evolve_gw(bin_mass_1, bin_mass_2, bin_sep, smbh_mass, agn_redshift)

Wrapper function to calculate GW strain [unitless] and frequency [Hz] for BBH with no previous GW frequency

Parameters:
  • blackholes_binary (AGNBinaryBlackHole) – Binary black hole parameters

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

  • agn_redshift (float) – Redshift [unitless] of the SMBH

Returns:

blackholes_binary – BBH with GW strain [unitless] and frequency [Hz] updated

Return type:

AGNBinaryBlackHole

mcfacts.physics.gw.gw_strain_freq(mass_1, mass_2, obj_sep, timestep_duration_yr, old_gw_freq, smbh_mass, agn_redshift, flag_include_old_gw_freq=1)

Calculates GW strain [unitless] and frequency [Hz]

This function takes in two masses, their separation, the previous frequency, and the redshift and calculates the new GW strain (unitless) and frequency (Hz).

Parameters:
  • mass_1 (numpy.ndarray) – Mass [M_sun] of object 1 with float type

  • mass_2 (numpy.ndarray) – Mass [M_sun] of object 2 with float type

  • obj_sep (numpy.ndarray) – Separation between both objects [r_{g,SMBH}] with float type

  • timestep_duration_yr (float, or -1 if not given) – Current timestep [yr]

  • old_gw_freq (numpy.ndarray, or -1 if not given) – Previous GW frequency [Hz] with float type

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

  • agn_redshift (float) – Redshift [unitless] of the SMBH

  • flag_include_old_gw_freq (int) – Flag indicating if old_gw_freq should be included in calculations if not, we use the hardcoded value (see note below) 0 if no, 1 if yes

Returns:

  • char_strain (numpy.ndarray) – Characteristic strain [unitless] with float type

  • nu_gw (numpy.ndarray) – GW frequency [Hz] with float type

Notes

Note from Saavik about hardcoding strain_factor to 4e3 if nu_gw > 1e-6: basically we are implicitly assuming if the frequency is low enough the source is monochromatic in LISA over the course of 1yr, so that’s where those values come from… and we do need to make a decision about that… and that’s an ok decision for now. But if someone were to be considering a different observatory they might not like that decision?