Teukolsky point-particle mode module

Contents

Teukolsky point-particle mode module#

The TeukolskyMode class constructs modes of the so-called extended homogeneous solutions to the radial Teukolsky equation for a point-particle source on a bound periodic geodesic,

\[\begin{split}\begin{align} \Psi_s &= \Psi_s^+ \Theta(r-r_p) + \Psi_s^- \Theta(r_p-r), \\ \Psi_s^\pm &= \sum_{jmkn}Z^{\mathrm{Up/In}}_{sjmkn}R^{\mathrm{Up/In}}_{sjmkn}(r)S_{sj\gamma_{mkn}}(\theta)e^{im\phi}e^{-i\omega_{mkn}t}, \end{align}\end{split}\]
where we have the mode frequencies \(\omega_{mkn} = m\Omega_\phi + k \Omega_\theta + n \Omega_r\), the discrete spheroidicity \(\gamma_{mkn} = a\omega_{mkn}\).

API#

class pybhpt.teuk.TeukolskyMode(s, j, m, k, n, geo, auto_solve=False)[source]

Bases: object

A class for computing Teukolsky modes sourced by a point-particle orbiting in a Kerr background.

Parameters:
  • s (int) – The spin weight of the Teukolsky mode.

  • j (int) – The spheroidal harmonic mode number.

  • m (int) – The azimuthal harmonic mode number.

  • k (int) – The polar harmonic mode number.

  • n (int) – The radial harmonic mode number.

  • geo (KerrGeodesic class instance) – KerrGeodesic object containing the background motion of the point-particle source.

  • auto_solve (bool, optional) – If True, the Teukolsky equation is automatically solved upon initialization. Default is False

Variables:
  • spinweight (int) – The spin weight of the Teukolsky mode.

  • spheroidalmode (int) – The spheroidal harmonic mode number.

  • azimuthalmode (int) – The azimuthal harmonic mode number.

  • radialmode (int) – The radial harmonic mode number.

  • polarmode (int) – The polar harmonic mode number.

  • blackholespin (float) – The spin of the black hole in the Kerr background.

  • frequency (float) – The frequency of the Teukolsky mode.

  • horizonfrequency (float) – The frequency of the mode at the horizon.

  • eigenvalue (float) – The spheroidal eigenvalue of the Teukolsky mode.

  • mincouplingmode (int) – The minimum l-mode used for coupling the spherical and spheroidal harmonics

  • maxcouplingmode (int) – The maximum l-mode used for coupling the spherical and spheroidal harmonics

  • j (int) – Alias for spheroidalmode.

  • m (int) – Alias for azimuthalmode.

  • k (int) – Alias for polarmode.

  • n (int) – Alias for radialmode.

  • omega (float) – Alias for frequency.

  • a (float) – Alias for blackholespin.

solve(geo, method='AUTO', nsamples=256, teuk=None, swsh=None)[source]

Solve the Teukolsky equation for the given mode and geodesic.

flipspinweight()[source]

Flip the spin weight of the Teukolsky mode.

flipspinweightandfrequency()[source]

Flip the spin weight and frequency of the Teukolsky mode.

couplingcoefficient(l)[source]

Compute the coupling coefficient for the given l-mode.

radialpoint(pos)[source]

Compute the radial point for the given position.

radialsolution(bc, pos)[source]

Compute the radial solution for the given boundary condition and position.

radialderivative(bc, pos)[source]

Compute the radial derivative for the given boundary condition and position.

radialderivative2(bc, pos)[source]

Compute the second radial derivative for the given boundary condition and position.

homogeneousradialsolution(bc, pos)[source]

Compute the homogeneous radial solution for the given boundary condition and position.

homogeneousradialderivative(bc, pos)[source]

Compute the homogeneous radial derivative for the given boundary condition and position.

homogeneousradialderivative2(bc, pos)[source]

Compute the second homogeneous radial derivative for the given boundary condition and position.

polarpoint(pos)[source]

Compute the polar point for the given position.

polarsolution(pos)[source]

Compute the polar solution for the given position.

polarderivative(pos)[source]

Compute the polar derivative for the given position.

polarderivative2(pos)[source]

Compute the second polar derivative for the given position.

amplitude(bc)[source]

Compute the Teukolsky amplitude for the given boundary condition.

precision(bc)[source]

Compute the precision of the Teukolsky amplitude for the given boundary condition.

property spinweight
property spheroidalmode
property azimuthalmode
property radialmode
property polarmode
property blackholespin
property frequency
property horizonfrequency
property eigenvalue
property mincouplingmode
property maxcouplingmode
property j
property m
property k
property n
property omega
property a
property couplingcoefficients
property polarpoints
property polarsolutions
property polarderivatives
property polarderivatives2
property radialpoints
property radialsolutions
property radialderivatives
property radialderivatives2
property homogeneousradialsolutions
property homogeneousradialderivatives
property homogeneousradialderivatives2
property amplitudes
property precisions
solve(geo, method='AUTO', nsamples=256, teuk=None, swsh=None)[source]

Solve the Teukolsky equation for the given mode and geodesic. :param geo: KerrGeodesic object containing the background motion of the point-particle source. :type geo: KerrGeodesic class instance :param method: The method to use for solving the Teukolsky equation. Default is “AUTO”. :type method: str, optional :param nsamples: The number of samples to use for the solution. Default is 256. :type nsamples: int, optional :param teuk: RadialTeukolsky object to use for constructing the radial Green function. Default is None. :type teuk: RadialTeukolsky, optional :param swsh: SpheroidalHarmonic object to use for coupling with spheroidal harmonics. Default is None. :type swsh: SpheroidalHarmonicMode, optional

flipspinweight()[source]
flipspinweightandfrequency()[source]

Flips the spin-weight and frequency of the Teukolsky solutions from :math:`s

ightarrow -s` and \(\omega ightarrow -\omega\)

couplingcoefficient(l)[source]

Spherical-spheroidal mixing coefficient between a spherical harmonic $l$ mode with a spheroidal $j$ mode.

Parameters:

l (int) – Spherical harmonic mode.

Returns:

The coupling coefficient between the spherical harmonic mode l and the spheroidal harmonic mode j.

Return type:

float

radialpoint(pos)[source]

The radial point for the given position pos.

Parameters:

pos (int) – The radial position.

Returns:

The radial point at the given position pos.

Return type:

float

radialsolution(bc, pos)[source]

The extended homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial solution at the given boundary condition bc and position pos.

Return type:

complex

radialderivative(bc, pos)[source]

The derivative of the extended homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial derivative at the given boundary condition bc and position pos.

Return type:

complex

radialderivative2(bc, pos)[source]

The second derivative of the extended homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial second derivative at the given boundary condition bc and position pos.

Return type:

complex

homogeneousradialsolution(bc, pos)[source]

The homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial solution at the given boundary condition bc and position pos.

Return type:

complex

homogeneousradialderivative(bc, pos)[source]

The radial derivative of the homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial derivative at the given boundary condition bc and position pos.

Return type:

complex

homogeneousradialderivative2(bc, pos)[source]

The second radial derivative of the homogeneous radial solution for the given boundary condition bc and position pos.

Parameters:
  • bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

  • pos (int) – The radial position.

Returns:

The radial second derivative at the given boundary condition bc and position pos.

Return type:

complex

polarpoint(pos)[source]

The polar point for the given position pos.

Parameters:

pos (int) – The polar position.

Returns:

The polar point at the given position pos.

Return type:

float

polarsolution(pos)[source]

The polar solution for the given position pos.

Parameters:

pos (int) – The polar position.

Returns:

The polar solution at the given position pos.

Return type:

float

polarderivative(pos)[source]

The derivative of the polar solution for the given position pos.

Parameters:

pos (int) – The polar position.

Returns:

The polar derivative at the given position pos.

Return type:

float

polarderivative2(pos)[source]

The second derivative of the polar solution for the given position pos.

Parameters:

pos (int) – The polar position.

Returns:

The polar second derivative at the given position pos.

Return type:

float

amplitude(bc)[source]

The Teukolsky amplitude for the given boundary condition bc.

Parameters:

bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

Returns:

The Teukolsky amplitude at the given boundary condition bc.

Return type:

complex

precision(bc)[source]

The precision of the Teukolsky amplitude for the given boundary condition bc.

Parameters:

bc (str) – The boundary condition, either “In” for ingoing or “Up” for upgoing.

Returns:

The precision of the Teukolsky amplitude at the given boundary condition bc.

Return type:

float