vcdisk.vcbulge¶
- vcdisk.vcbulge(rad, sb, q=0.99, inc=0.0)¶
Circular velocity of a spheroidal oblate bulge of arbitrary surface density.
This function calculates \(V_{\rm bulge}\) for a flattened bulge, whose isodensity surfaces \(\rho=\rho(m)\) are stratified on similar spheroids with \(m^2=R^2+(z^2/q^2)\). This is done with an Abel inversion to get the 3D density \(\rho(m)\) from the observed projected density and then by integration of the 3D density to get the gravitational potential. See e.g. Eq. (2.132) 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\).
q (float, optional) – intrinsic axis ratio of the spheroid. This is related to the ellipticity of the observed isophotal contours \(\epsilon\) and the inclination angle \(i\) (i.e. the
incparameter) by \((1-\epsilon)^2 = q^2+(1-q^2)\cos^2 i\). This parameter is \(0<q<1\) for oblate bulges. The spherical case \(q=1\) is singular in this formulation and will fallback tovcdisk.vcbulge_sph().inc (float, optional) – inclination in degrees of the line-of-sight with respect to the symmetry axis of the spheroid.
inc=0is edge-on,inc=90is face-on.
- Returns
array of \(V_{\rm bulge}\) velocities in \(\rm km/s\).
- Return type
See also
Notes¶
This function calculates \(V_{\rm bulge}\) for a spheroidal bulge, whose isodensity surfaces are stratified on similar spheroids:
\[\rho=\rho(m), \qquad {\rm with}\,\,\, m^2=R^2+\frac{z^2}{q^2},\]where \(q\) is the intrinsic axis ratio. The calculation is done following the formalism of [Noordermeer08], using their Eq. (10).
In practice this is done in two steps. First the 3D density \(\rho(m)\) is computed with an Abel inversion:
\[\rho(m) = -\frac{1}{\pi} \int_m^\infty \frac{{\rm d}I}{{\rm d}R} \frac{{\rm d}R}{\sqrt{R^2-m^2}},\]where \(I(R)\) is the observed surface density. Since this integral has a singularity at the lower bound of integration, where \(R=m\), it is better to change the integration variable to \(u={\rm arccosh}{(R/m)}\) so that the integral becomes
\[\rho(m) = -\frac{1}{\pi} \int_0^\infty I'(m\cosh{u}) {\rm d}u,\]where \(I'\) is the first derivative of \(I\). With the 3D density \(\rho(m)\) at hand, the circular velocity can then be computed as
\[V^2_{\rm bulge}(r) = -4\pi\,Gq\sqrt{\sin^2i+\frac{1}{q}\cos^2i} \int_0^r \frac{m^2\rho(m){\rm d}m}{\sqrt{r^2-e^2m^2}},\]where \(e=\sqrt{1-q^2}\) is the intrinsic ellipticity. However, also this integral has a singularity at \(m=r/e\), thus it is convenient to change variables to \(u=\arcsin{me/r}\) so that
\[V^2_{\rm bulge}(r) = -4\pi\,Gq\frac{r^2}{e^3}\sqrt{\sin^2i+\frac{1}{q}\cos^2i} \int_0^{\arcsin{e}} \rho\left(\frac{r}{e}\sin{u}\right) \sin^2u \,{\rm d}u.\]Both the \(\rho(m)\) and the \(V_{\rm bulge}\) integrals are computed with
scipy.integrate.quad()and the derivative of the input surface density profile \(I'\) is discretized withnumpy.gradient().Warning
With the current implementation using
scipy.integrate.quad()this function is considerably slower thanvcdisk.vcdisk(), which instead computes discretized integrals withscipy.integrate.simpson().Warning
The integral consistently results in a numerical overflow of
coshand an IntegrationWarning onscipy.integrate.quad(). Thus these two warnings have been suppressed.References¶
- Noordermeer08
Noordermeer, 2008, MNRAS, 385, 1359. The rotation curves of flattened Sérsic bulges. https://ui.adsabs.harvard.edu/abs/2008MNRAS.385.1359N/