galpy.potential.scf_compute_coeffs

Note: This function computes Acos and Asin as defined in Hernquist & Ostriker (1992), except that we multiply Acos and Asin by 2 such that the density from Galpy’s Hernquist Potential corresponds to \(Acos = \delta_{0n}\delta_{0l}\delta_{0m}\) and \(Asin = 0\).

For a given \(\rho(R, z, \phi)\) we can compute \(Acos\) and \(Asin\) through the following equation

\[\begin{split}\begin{bmatrix} Acos \\ Asin \end{bmatrix}_{nlm} = \frac{4 a^3}{I_{nl}} \int_{\xi=0}^{\infty}\int_{\cos(\theta)=-1}^{1}\int_{\phi=0}^{2\pi} (1 + \xi)^{2} (1 - \xi)^{-4} \rho(R, z, \phi) \Phi_{nlm}(\xi, \cos(\theta), \phi) d\phi d\cos(\theta) d\xi\end{split}\]

Where

\[\begin{split}\Phi_{nlm}(\xi, \cos(\theta), \phi) = -\frac{\sqrt{2l + 1}}{a2^{2l + 1}} \sqrt{\frac{(l - m)!}{(l + m)!}} (1 + \xi)^l (1 - \xi)^{l + 1} C_{n}^{2l + 3/2}(\xi) P_{lm}(\cos(\theta)) \begin{bmatrix} \cos(m\phi) \\ \sin(m\phi) \end{bmatrix}\end{split}\]
\[I_{nl} = - K_{nl} \frac{4\pi}{a 2^{8l + 6}} \frac{\Gamma(n + 4l + 3)}{n! (n + 2l + 3/2)[\Gamma(2l + 3/2)]^2} \qquad K_{nl} = \frac{1}{2}n(n + 4l + 3) + (l + 1)(2l + 1)\]

\(P_{lm}\) is the Associated Legendre Polynomials whereas \(C_{n}^{\alpha}\) is the Gegenbauer polynomial.

Also note \(\xi = \frac{r - a}{r + a}\) , and \(n\), \(l\) and \(m\) are integers bounded by \(0 <= n < N\) , \(0 <= l < L\), and \(0 <= m <= l\)

galpy.potential.scf_compute_coeffs(dens, N, L, a=1.0, radial_order=None, costheta_order=None, phi_order=None)[source]

Numerically compute the expansion coefficients for a given triaxial density

Parameters:
  • dens (function) – A density function that takes parameters R, z and phi

  • N (int) – Size of the Nth dimension of the expansion coefficients

  • L (int) – Size of the Lth and Mth dimension of the expansion coefficients

  • a (float, optional) – Parameter used to shift the basis functions (default is 1.0)

  • radial_order (int, optional) – Number of sample points of the radial integral. If None, radial_order=max(20, N + 3/2L + 1) (default is None)

  • costheta_order (int, optional) – Number of sample points of the costheta integral. If None, If costheta_order=max(20, L + 1) (default is None)

  • phi_order (int, optional) – Number of sample points of the phi integral. If None, If costheta_order=max(20, L + 1) (default is None)

Returns:

(Acos,Asin) - Expansion coefficients for density dens that can be given to SCFPotential.__init__

Return type:

tuple

Notes

  • 2016-05-27 - Written - Aladdin Seaifan (UofT)