vcdisk.vcbulge_sph¶
- vcdisk.vcbulge_sph(rad, sb)¶
Circular velocity of a spherical bulge of arbitrary surface density.
This function inverts Abel’s integral equation to calculate the 3D density of a spherically symmetric bulge from its projected surface density (see Eq. B.72 in [BT2008]).
- Parameters
rad (list or numpy.ndarray) – array of radii in \(\rm kpc\).
sb (list or numpy.ndarray) – array of surface densities in \(\rm M_\odot / kpc^2\).
- Returns
array of \(V_{\rm bulge}\) velocities in \(\rm km/s\).
- Return type
See also
Notes¶
vcdisk.vcbulge_sph()inverts Abel’s integral to get the 3D density\[\rho(r) = -\frac{1}{\pi} \int_r^\infty \frac{{\rm d}I}{{\rm d}R} \frac{{\rm d}R}{\sqrt{R^2-r^2}},\]where \(I(R)\) is the projected surface density. Since this integral has a singularity at the lower bound of integration, where \(R=r\), it is better to change the integration variable to \(u={\rm arccosh}{(R/r)}\) so that the integral becomes
\[\rho(r) = -\frac{1}{\pi} \int_0^\infty I'(r\cosh{u}) {\rm d}u,\]where \(I'\) is the first derivative of \(I\). Then, the mass profile can be written as \(M(r)=4\pi\int_0^r x^2\rho(x) {\rm d}x\) and finally \(V_{\rm bulge}(r)=\sqrt{GM(r)/r}.\)
The \(\rho(r)\) integral is computed with
scipy.integrate.quad(), the derivative of the input surface density profile \(I'\) is discretized withnumpy.gradient(), and the mass integral is computed withscipy.integrate.simpson().References¶
- BT2008
Binney & Tremaine, 2008, Princeton University Press, NJ USA. Galactic Dynamics: Second Edition.