Dynamical Friction¶
Class providing models of the satellite vector acceleration due to dynamical friction—the gravitational drag force that decelerates a satellite as it moves through the background distribution of dark matter particles and substructures. The Chandrasekhar dynamical friction formula scales as \(\mathbf{a}_\mathrm{df} \propto -\rho \ln\Lambda\, \mathbf{v}_\mathrm{sat}/v_\mathrm{sat}^3\), where \(\ln\Lambda\) is the Coulomb logarithm. Dynamical friction drives orbital decay and eventual coalescence of satellite galaxies with their hosts, and is complementary to SIDM-driven deceleration.
Default implementation: satelliteDynamicalFrictionChandrasekhar1943
Methods¶
acceleration→double precision, dimension(3)Returns the satellite acceleration due to dynamical friction for
node(in units of km/s/Gyr).type(treeNode), intent(inout) :: node
satelliteDynamicalFrictionChandrasekhar1943¶
A satellite dynamical friction class which uses the Chandrasekhar (1943) formula to compute the acceleration of a satellite at radius \(r\) from the center of the host due to dynamical friction:
where \(M_\mathrm{sat}\) and \(\mathbf{v}_\mathrm{sat}\) are the satellite’s mass and velocity, respectively, \(v_\mathrm{sat}=|\mathbf{v}_\mathrm{sat}|\), \(\rho_\mathrm{host}(r)\) is the host’s density profile, \(\ln\Lambda=\)[logarithmCoulomb] is the Coulomb logarithm, and \(x\equiv v_\mathrm{sat}/\sqrt{2}\sigma(r)\), where \(\sigma(r)\) is the velocity dispersion of the host halo at radius \(r\), approximated to be equal to the host virial velocity, \(v_\mathrm{vir}\).
(Default implementation)
Methods
coulombLogarithm— Compute the Coulomb logarithm, \(\log \Lambda\), appearing in the Chandrasekhar (1943) dynamical friction equation.
Parameters
[logarithmCoulomb](default2.0d0) — The Coulomb logarithm, \(\ln \Lambda\), appearing in the Chandrasekhar (1943) formulation of the acceleration due to dynamical friction.
satelliteDynamicalFrictionKaur2018¶
A satellite dynamical friction class which applies the core-stalling model of Kaur and Sridhar (2018) to another dynamical friction class. Specifically, the acceleration due to dynamical friction is given by:
where \(\mathbf{a}^\prime_\mathrm{df}\) is the acceleration provided by the child dynamical friction class, and \(S_\mathrm{trail}(x)\) and \(S_\mathrm{lead}(x)\) are the torque suppression factors defined by Kaur and Sridhar (2018). The functional forms for \(S(x)\) are taken from Figure 8 of Kaur and Sridhar (2018)—extrapolation in \(\log(S)\) vs. \(x\) is used to extend \(S(x)\) to lower \(x\) than shown in that figure, while for values of \(x\) higher than that shown in that figure \(S(x)\) is held constant at the maximum value shown.
The stalling radius, \(r_*\), is computed using equation (55) of Kaur and Sridhar (2018). For dark matter halo profiles with a central cusp (for which that equation has no solution), the acceleration provided by the child dynamical friction class is returned unmodified.
satelliteDynamicalFrictionMassRatioThreshold¶
A satellite dynamical friction class that wraps another dynamical friction implementation and suppresses the deceleration to zero whenever the satellite-to-host halo mass ratio falls below a threshold value. This prevents unphysically large dynamical friction forces on very low-mass satellites. The mass ratio threshold is set by [massRatioThreshold].
Parameters
[massRatioThreshold]— The satellite-to-host mass ratio below which dynamical friction acceleration is truncated to zero.
satelliteDynamicalFrictionPetts2015¶
A satellite dynamical friction class which computes the Coulomb logarithm following the model of Petts et al. (2015). The minimum impact parameter is taken to be \(b_\mathrm{min} = \max(r_{1/2,\mathrm{sat}}, G M_\mathrm{sat} / v_\mathrm{orbital}^2)\), where \(r_{1/2,\mathrm{sat}}\) is the half-mass radius of the dark matter component of the satellite, and the maximum is \(b_\mathrm{max} = r_\mathrm{orbital}/|\gamma|\) for \(|\gamma| > 1\) (where \(\gamma\) is the logarithmic density slope of the host at the satellite position), or \(r_\mathrm{orbital}\) otherwise. The [logarithmCoulombApproximate] parameter controls whether the Coulomb logarithm is evaluated as \(\ln\Lambda\) (for \(\Lambda \geq 1\), else zero) or the approximate form \(\frac{1}{2}\ln(1+\Lambda^2)\).
Parameters
[logarithmCoulombApproximate](default.false.) — If true, the Coulomb logarithm term is evaluated as \(\frac{1}{2}\log(1+\Lambda^2)\). Otherwise, it is evaluated as \(\log\Lambda\) for \(\Lambda \ge 1\) and set to zero otherwise.
satelliteDynamicalFrictionZero¶
A satellite dynamical friction class in which the acceleration is always zero.