mcfacts.physics.accretion

Module for calculating change of mass, spin magnitude, and spin angle due to accretion.

mcfacts.physics.accretion.accrete_star_mass(disk_star_pro_masses, disk_star_pro_orbs_a, disk_star_luminosity_factor, disk_star_initial_mass_cutoff, smbh_mass, disk_sound_speed, disk_density, timestep_duration_yr, r_g_in_meters)

Adds mass according to Fabj+2024 accretion rate

Takes initial star masses at start of timestep and adds mass according to Fabj+2024.

Parameters:
  • disk_star_pro_masses (numpy.ndarray) – Initial masses [M_sun] of stars in prograde orbits around SMBH with float type.

  • disk_star_eddington_ratio (float) – Accretion rate of fully embedded stars [Eddington accretion rate]. 1.0=embedded star accreting at Eddington. Super-Eddington accretion rates are permitted. User chosen input set by input file

  • mdisk_star_eddington_mass_growth_rate (float) – Fractional rate of mass growth AT Eddington accretion rate per year (fixed at 2.3e-8 in mcfacts_sim) [yr^{-1}]

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

  • r_g_in_meters (float) – Gravitational radius of the SMBH in meters

Returns:

disk_star_pro_new_masses – Masses [M_sun] of stars after accreting at prescribed rate for one timestep [M_sun] with float type

Return type:

numpy.ndarray

Notes

Calculate Bondi radius: R_B = (2 G M_*)/(c_s **2) and Hill radius: R_Hill approx a(1-e)(M_*/(3(M_* + M_SMBH)))^(1/3). Accretion rate is Mdot = (pi/f) * rho * c_s * min[R_B, R_Hill]**2 with f ~ 4 as luminosity dependent factor that accounts for the decrease of the accretion rate onto the star as it approaches the Eddington luminosity (see Cantiello+2021), rho as the disk density, and c_s as the sound speed.

mcfacts.physics.accretion.change_bh_mass(disk_bh_pro_masses, disk_bh_eddington_ratio, disk_bh_eddington_mass_growth_rate, timestep_duration_yr)

Adds mass according to chosen BH mass accretion prescription

Takes initial BH masses at start of timestep and adds mass according to chosen BH mass accretion prescription

Parameters:
  • disk_bh_pro_masses (numpy.ndarray) – Initial masses [M_sun] of black holes in prograde orbits around SMBH float type

  • disk_bh_eddington_ratio (float) – Accretion rate of fully embedded stellar mass black hole [Eddington accretion rate]. 1.0=embedded BH accreting at Eddington. Super-Eddington accretion rates are permitted. User chosen input set by input file

  • mdisk_bh_eddington_mass_growth_rate (float) – Fractional rate of mass growth [yr^{-1}] AT Eddington accretion rate per year (fixed at 2.3e-8 in mcfacts_sim)

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

Returns:

disk_bh_pro_new_masses – Masses [M_sun] of black holes after accreting at prescribed rate for one timestep with float type

Return type:

numpy.ndarray

mcfacts.physics.accretion.change_bh_spin(disk_bh_pro_spins, disk_bh_pro_spin_angles, disk_bh_eddington_ratio, disk_bh_torque_condition, disk_bh_spin_minimum_resolution, timestep_duration_yr, disk_bh_pro_orbs_ecc, disk_bh_pro_orbs_ecc_crit)

Updates the spin magnitude of the embedded black holes based on their accreted mass in this timestep.

Parameters:
  • disk_bh_pro_spins (numpy.ndarray) – Initial spins [unitless] of black holes in prograde orbits around SMBH

  • disk_bh_pro_spin_angles (numpy.ndarray) – Initial spin angles [radian] of black holes in prograde orbits around SMBH with float type

  • disk_bh_eddington_ratio (float) – Accretion rate of fully embedded stellar mass black hole [Eddington accretion rate]. 1.0=embedded BH accreting at Eddington. Super-Eddington accretion rates are permitted. User chosen input set by input file

  • disk_bh_torque_condition (float) – Fraction of initial mass required to be accreted before BH spin is torqued fully into alignment with the AGN disk. We don’t know for sure but (Bogdanovic et al. 2007) says between 0.01=1% and 0.1=10% is what is required User chosen input set by input file

  • disk_bh_spin_minimum_resolution (float) – Minimum resolution of spin change followed by code [unitless]

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

  • disk_bh_pro_orbs_ecc (numpy.ndarray) – Orbital eccentricity [unitless] of BH in prograde orbits around SMBH with float type

  • disk_bh_pro_orbs_ecc_crit (float) – Critical value of orbital eccentricity [unitless] below which prograde accretion (& migration & binary formation) occurs

Returns:

  • disk_bh_pro_spins_new (numpy.ndarray) – Spin magnitudes [unitless] of black holes after accreting at prescribed rate for one timestep with float type

  • disk_bh_pro_spin_new (numpy.ndarray) – Spin angles [radian] of black holes after accreting at prescribed rate for one timestep with float type

mcfacts.physics.accretion.star_wind_mass_loss(disk_star_pro_masses, disk_star_pro_log_radius, disk_star_pro_log_lum, disk_star_pro_orbs_a, disk_opacity_func, timestep_duration_yr)

Removes mass according to the Cantiello+ 2021 prescription

Takes initial star masses at the start of the timestep and removes mass according to Eqn. 16 in Cantiello+ 2021

Parameters:
  • disk_star_pro_masses (numpy.ndarray) – Initial masses [M_sun] of stars in prograde orbits around the SMBH with float type.

  • disk_star_pro_log_radius (numpy.ndarray) – Radius (log R/R_sun) of stars in prograde orbits around the SMBH with float type.

  • disk_star_pro_log_lum (numpy.ndarray) – Luminosity (log L/L_sun) of stars in prograde orbits around the SMBH with float type.

  • disk_star_pro_orbs_a (numpy.narray) – Semi-major axes [R_{g,SMBH}] of stars in prograde orbits around the SMBH with float type.

  • disk_opacity_func (function) – Disk opacity function

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

Returns:

star_new_masses – New masses [M_sun] after removing mass for one timestep at specified mass loss rate with float type.

Return type:

numpy.ndarray