Spin-weighted spheroidal harmonics

Spin-weighted spheroidal harmonics

kerrgeodesic_gw.spin_weighted_spheroidal_harm.spin_weighted_spheroidal_eigenvalue(s, l, m, gamma, verbose=False, cached=True, min_nmax=8)

Return the spin-weighted oblate spheroidal eigenvalue of spin weight s, degree l, azimuthal order m and spheroidicity gamma.

INPUT:

  • s – integer; the spin weight

  • l – non-negative integer; the harmonic degree

  • m – integer within the range [-l, l]; the azimuthal number

  • gamma – spheroidicity parameter \(\gamma\)

  • verbose – (default: False) determines whether some details of the computation are printed out

  • cached – (default: True) determines whether the eigenvalue and the eigenvectors shall be cached; setting cached to False forces a new computation, without caching the result

  • min_nmax – (default: 8) integer; floor for the evaluation of the parameter nmax, which sets the highest degree of the spherical harmonic expansion as l+nmax.

OUTPUT:

  • eigenvalue \(\lambda\) related to the eigenvalue \(\mathcal{E}_{\ell m}\) of the spheroidal harmonic by

\[\lambda = \mathcal{E}_{\ell m} - 2 m \gamma + \gamma^2 - s(s+1)\]

ALGORITHM:

The method is adapted from that exposed in Appendix A of S.A. Hughes, Phys. Rev. D 61, 084004 (2000) [doi:10.1103/PhysRevD.61.084004].

EXAMPLES:

sage: from kerrgeodesic_gw import spin_weighted_spheroidal_eigenvalue
sage: spin_weighted_spheroidal_eigenvalue(-2, 2, 1, 1.2)  # tol 1.0e-13
0.5167945263162421
sage: spin_weighted_spheroidal_eigenvalue(-2, 2, 1, 1.2, cached=False)  # tol 1.0e-13
0.5167945263162421
sage: spin_weighted_spheroidal_eigenvalue(-2, 2, 1, 0)
4.0
kerrgeodesic_gw.spin_weighted_spheroidal_harm.spin_weighted_spheroidal_harmonic(s, l, m, gamma, theta, phi, verbose=False, cached=True, min_nmax=8)

Return the spin-weighted oblate spheroidal harmonic of spin weight s, degree l, azimuthal order m and spheroidicity gamma.

INPUT:

  • s – integer; the spin weight

  • l – non-negative integer; the harmonic degree

  • m – integer within the range [-l, l]; the azimuthal number

  • gamma – spheroidicity parameter

  • theta – colatitude angle

  • phi – azimuthal angle

  • verbose – (default: False) determines whether some details of the computation are printed out

  • cached – (default: True) determines whether the eigenvectors shall be cached; setting cached to False forces a new computation, without caching the result

  • min_nmax – (default: 8) integer; floor for the evaluation of the parameter nmax, which sets the highest degree of the spherical harmonic expansion as l+nmax.

OUTPUT:

  • value of \({}_s S_{lm}^\gamma(\theta,\phi)\)

ALGORITHM:

The spin-weighted oblate spheroidal harmonics are computed by an expansion over spin-weighted spherical harmonics, the coefficients of the expansion being obtained by solving an eigenvalue problem, as exposed in Appendix A of S.A. Hughes, Phys. Rev. D 61, 084004 (2000) [doi:10.1103/PhysRevD.61.084004].

EXAMPLES:

sage: from kerrgeodesic_gw import spin_weighted_spheroidal_harmonic
sage: spin_weighted_spheroidal_harmonic(-2, 2, 2, 1.1, pi/2, 0)  # tol 1.0e-13
0.08702532727529422
sage: spin_weighted_spheroidal_harmonic(-2, 2, 2, 1.1, pi/3, pi/3)  # tol 1.0e-13
-0.14707166027821453 + 0.25473558795537715*I
sage: spin_weighted_spheroidal_harmonic(-2, 2, 2, 1.1, pi/3, pi/3, cached=False)   # tol 1.0e-13
-0.14707166027821453 + 0.25473558795537715*I
sage: spin_weighted_spheroidal_harmonic(-2, 2, 2, 1.1, pi/3, pi/4)  # tol 1.0e-13
1.801108380050024e-17 + 0.2941433205564291*I
sage: spin_weighted_spheroidal_harmonic(-2, 2, -1, 1.1, pi/3, pi/3, cached=False)  # tol 1.0e-13
0.11612826056899399 - 0.20114004750009495*I

Test that the relation \({}_s S_{lm}^\gamma(\theta,\phi) = (-1)^{l+s}\, {}_s S_{l,-m}^{-\gamma}(\pi-\theta,-\phi)\) [cf. Eq. (2.3) of Arxiv 1810.00432], which is used to evaluate \({}_s S_{lm}^\gamma(\theta,\phi)\) when \(m<0\) and cached is True, is correctly implemented:

sage: spin_weighted_spheroidal_harmonic(-2, 2, -2, 1.1, pi/3, pi/3)  # tol 1.0e-13
-0.04097260436590737 - 0.07096663248016997*I
sage: abs(_ - spin_weighted_spheroidal_harmonic(-2, 2, -2, 1.1, pi/3, pi/3,
....:                                           cached=False)) < 1.e-13
True
sage: spin_weighted_spheroidal_harmonic(-2, 3, -1, 1.1, pi/3, pi/3)  # tol 1.0e-13
0.1781880511506843 - 0.3086307578946672*I
sage: abs(_ - spin_weighted_spheroidal_harmonic(-2, 3, -1, 1.1, pi/3, pi/3,
....:                                           cached=False)) < 1.e-13
True