galpy.potential.scf_compute_coeffs_axi

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

Further note that this function is a specification of scf_compute_coeffs where \(Acos_{nlm} = 0\) at \(m\neq0\) and \(Asin_{nlm} = None\)

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

\[Acos_{nlm}= \frac{8 \pi a^3}{I_{nl}} \int_{\xi=0}^{\infty} \int_{\cos(\theta)=-1}^{1} (1 + \xi)^{2} (1 - \xi)^{-4} \rho(R, z) \Phi_{nlm}(\xi, \cos(\theta)) d\cos(\theta) d\xi \qquad Asin_{nlm}=None\]

Where

\[\Phi_{nlm}(\xi, \cos(\theta)) = -\frac{\sqrt{2l + 1}}{a2^{2l + 1}} (1 + \xi)^l (1 - \xi)^{l + 1} C_{n}^{2l + 3/2}(\xi) P_{l0}(\cos(\theta)) \delta_{m0}\]
\[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 \(m = 0\)

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

NAME:

scf_compute_coeffs_axi

PURPOSE:

Numerically compute the expansion coefficients for a given axi-symmetric density

INPUT:

dens - A density function that takes a parameter R and z

N - size of the Nth dimension of the expansion coefficients

L - size of the Lth dimension of the expansion coefficients

a - parameter used to shift the basis functions

radial_order - Number of sample points of the radial integral. If None, radial_order=max(20, N + 3/2L + 1)

costheta_order - Number of sample points of the costheta integral. If None, If costheta_order=max(20, L + 1)

OUTPUT:

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

HISTORY:

2016-05-20 - Written - Aladdin Seaifan (UofT)