mcfacts.physics.eccentricity
Module for calculating the orbital and binary eccentricity damping.
- mcfacts.physics.eccentricity.bin_ecc_damping(smbh_mass, disk_bh_pro_orbs_a, disk_bh_pro_orbs_masses, disk_surf_density_func, disk_aspect_ratio_func, disk_bh_pro_orbs_ecc, timestep_duration_yr, disk_bh_pro_orb_ecc_crit)
“Calculate modified eccentricities for BBH according to Calcino et al. (2023), arXiv:2312.13727
- Parameters:
smbh_mass (float) – Mass [M_sun] of supermassive black hole
disk_bh_pro_orbs_a (numpy.ndarray) – Orbital semi-major axes [r_{g,SMBH}] of prograde singleton BH at start of a timestep (math:r_g=GM_{SMBH}/c^2) with
floattypedisk_bh_pro_masses (numpy.ndarray) – Masses [M_sun] of prograde singleton BH at start of timestep with
floattypedisk_surf_density_func (function) – Returns AGN gas disk surface density [kg/m^2] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
disk_aspect_ratio_func (function) – Returns AGN gas disk aspect ratio [unitless] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
disk_bh_pro_orbs_ecc (numpy.ndarray) – Orbital eccentricity [unitless] of singleton prograde BH with
floattypetimestep_duration_yr (float) – Length of timestep [yr]
- Returns:
bh_new_orb_ecc – updated orbital eccentricities damped by AGN gas
- Return type:
float array
Notes
dot{e}_b increases in magnitude as e_b is larger. dot{e}_b is always negative for prograde bins (ie e_b is damped for prograde bins) dot{e}_b is always positive for retrograde bins (ie e_b is pumped for retrograde bins)
- For retrograde bins:
dot{e_b} ~ 1 in units of dot{M_bondi}/M_bondi for e_b~ 0.5, dot_{e_b}>1 for e_b >0.5, <1 for e_b<0.5
- For prograde bins:
dot{e_b} ~ -0.25 in the same units for e_b~0.5, dot{e_b} ~ -0.28 at e_b=0.7, dot{e_b}~ -0.04 at e_b=0.1
- and
dot{m_bin} is ~0.05 M_bondi in these sims.
- with (from their eqn. 19)
M_bondi/M_edd ~ 5e5 (R_H/H)^3 (rho/10^-14 g/cc) (M_smbh/10^6M_sun)^-1/2 (R0/0.1pc)^3/2 (e/0.1) where R_H=Hill sphere radius, H = disk scale height, rho = disk midplane density, R0=location of binary, e=acc. efficiency onto SMBH (L=e*dot{M}c^2)
Convert to 10^8Msun, *1/10
Use Tanaka & Ward (2004) t_damp = M^3/2 h^4 / (2^1/2 m Sigma a^1/2 G ) where M is the central mass, h is the disk aspect ratio (H/a), m is the orbiter mass, Sigma is the disk surface density, a is the semi-major axis, G is the universal gravitational constant.
- From McKernan & Ford (2023) eqn 4. we can parameterize t_damp as
t_damp ~ 0.1Myr (q/10^-7)^-1 (h/0.03)^4 (Sigma/10^5 kg m^-2)^-1 (a/10^4r_g)^-1/2
- For eccentricity e<2h
e(t)=e0*exp(-t/t_damp)……(1) So
in 0.1 damping time, e(t_damp)=0.90*e0 in 1 damping time, e(t_damp)=0.37*e0 in 2 damping times, e(t_damp)=0.135*e0 in 3 damping times, e(t_damp)=0.05*e0
For now assume e<2h condition. To do: Add condition below (if ecc>2h..)
- For eccentricity e>2h eqn. 9 in McKernan & Ford (2023), based on Horn et al. (2012) the scaling time is now t_ecc.
t_ecc = (t_damp/0.78)*[1 - (0.14*(e/h)^2) + (0.06*(e/h)^3)] ……(2) which in the limit of e>0.1 for most disk models becomes t_ecc ~ (t_damp/0.78)*[1 + (0.06*(e/h)^3)]
- mcfacts.physics.eccentricity.ionized_orb_ecc(num_bh, orb_ecc_max)
Calculate new eccentricity for each component of an ionized binary.
- mcfacts.physics.eccentricity.orbital_bin_ecc_damping(smbh_mass, bin_mass_1, bin_mass_2, bin_orb_a, bin_ecc, bin_orb_ecc, disk_surf_density_func, disk_aspect_ratio_func, timestep_duration_yr, disk_bh_pro_orb_ecc_crit)
Calculates damping of BBH orbital eccentricities according to a prescription.
Use same mechanisms as for prograde singleton BH.
E.g. Tanaka & Ward (2004) t_damp = M^3/2 h^4 / (2^1/2 m Sigma a^1/2 G ) where M is the central mass, h is the disk aspect ratio (H/a), m is the orbiter mass, Sigma is the disk surface density, a is the semi-major axis, G is the universal gravitational constant. From McKernan & Ford (2023) eqn 4. we can parameterize t_damp as t_damp ~ 0.1Myr (q/10^-7)^-1 (h/0.03)^4 (Sigma/10^5 kg m^-2)^-1 (a/10^4r_g)^-1/2
- Parameters:
smbh_mass (float) – Mass [M_sun] of supermassive black hole
blackholes_binary (AGNBinaryBlackHole) – binary black hole parameters
timestep_duration_yr (float) – Length of timestep [yr]
disk_surf_density_func (function) – Returns AGN gas disk surface density [kg/m^2] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
disk_aspect_ratio_func (function) – Returns AGN gas disk aspect ratio [unitless] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
- Returns:
blackholes_binary – binaries with updated orbital eccentricities damped by AGN gas
- Return type:
Notes
- For eccentricity e<2h
e(t)=e0*exp(-t/t_damp)……(1) So in 0.1 damping time, e(t_damp)=0.90*e0 in 1 damping time, e(t_damp)=0.37*e0 in 2 damping times, e(t_damp)=0.135*e0 in 3 damping times, e(t_damp)=0.05*e0
For now assume e<2h condition. To do: Add condition below (if ecc>2h..)
- For eccentricity e>2h eqn. 9 in McKernan & Ford (2023), based on Horn et al. (2012) the scaling time is now t_ecc.
t_ecc = (t_damp/0.78)*[1 - (0.14*(e/h)^2) + (0.06*(e/h)^3)] ……(2) which in the limit of e>0.1 for most disk models becomes t_ecc ~ (t_damp/0.78)*[1 + (0.06*(e/h)^3)]
- mcfacts.physics.eccentricity.orbital_ecc_damping(smbh_mass, disk_bh_pro_orbs_a, disk_bh_pro_orbs_masses, disk_surf_density_func, disk_aspect_ratio_func, disk_bh_pro_orbs_ecc, timestep_duration_yr, disk_bh_pro_orb_ecc_crit)
Calculates damping of BH orbital eccentricities according to a prescription.
Using Tanaka & Ward (2004) t_damp = M^3/2 h^4 / (2^1/2 m Sigma a^1/2 G ) where M is the central mass, h is the disk aspect ratio (H/a), m is the orbiter mass, Sigma is the disk surface density, a is the semi-major axis, G is the universal gravitational constant.
From McKernan & Ford (2023) eqn 4. we can parameterize t_damp as t_damp ~ 0.1Myr (q/10^-7)^-1 (h/0.03)^4 (Sigma/10^5 kg m^-2)^-1 (a/10^4r_g)^-1/2
- Parameters:
smbh_mass (float) – Mass [M_sun] of supermassive black hole
disk_bh_pro_orbs_a (numpy.ndarray) – Orbital semi-major axes [r_{g,SMBH}] of prograde singleton BH at start of a timestep (math:r_g=GM_{SMBH}/c^2) with
floattypedisk_bh_pro_masses (numpy.ndarray) – Masses [M_sun] of prograde singleton BH at start of timestep with
floattypedisk_bh_pro_orbs_ecc (numpy.ndarray) – Orbital eccentricity [unitless] of singleton prograde BH with
floattypetimestep_duration_yr (float) – Length of timestep [yr]
disk_bh_pro_orb_ecc_crit (float) – Critical orbital eccentricity [unitless] below which orbit is close enough to circularize
delta_energy_strong (float) – Average energy change [units??] per strong encounter
nsc_spheroid_normalization (float) – Normalization factor [unitless] determines the departures from sphericity of the initial distribution of perturbers (1.0=spherical)
disk_surf_density_func (function) – Returns AGN gas disk surface density [kg/m^2] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
disk_aspect_ratio_func (function) – Returns AGN gas disk aspect ratio [unitless] given a distance [r_{g,SMBH}] from the SMBH can accept a simple float (constant), but this is deprecated
- Returns:
bh_new_orb_ecc – updated orbital eccentricities damped by AGN gas
- Return type:
float array
Notes
For eccentricity e<2h e(t)=e0*exp(-t/t_damp)……(1)
So in 0.1 damping time, e(t_damp)=0.90*e0 in 1 damping time, e(t_damp)=0.37*e0 in 2 damping times, e(t_damp)=0.135*e0 in 3 damping times, e(t_damp)=0.05*e0
For now assume e<2h condition. To do: Add condition below (if ecc>2h..)
For eccentricity e>2h eqn. 9 in McKernan & Ford (2023), based on Horn et al. (2012) the scaling time is now t_ecc. \(t_{ecc} = (t_{damp}/0.78)*[1 - (0.14*(e/h)^2) + (0.06*(e/h)^3)]\) ……(2) which in the limit of e>0.1 for most disk models becomes \(t_{ecc} \propto (t_{damp}/0.78)*[1 + (0.06*(e/h)^3)]\)