Kerr Geometry Utilities

einsteinpy.utils.kerr_utils.nonzero_christoffels_list = [(0, 0, 1), (0, 0, 2), (0, 1, 3), (0, 2, 3), (0, 1, 0), (0, 2, 0), (0, 3, 1), (0, 3, 2), (1, 0, 0), (1, 1, 1), (1, 2, 2), (1, 3, 3), (2, 0, 0), (2, 1, 1), (2, 2, 2), (2, 3, 3), (1, 0, 3), (1, 1, 2), (2, 0, 3), (2, 1, 2), (1, 2, 1), (1, 3, 0), (2, 2, 1), (2, 3, 0), (3, 0, 1), (3, 0, 2), (3, 1, 0), (3, 1, 3), (3, 2, 0), (3, 2, 3), (3, 3, 1), (3, 3, 2)]

Precomputed list of tuples consisting of indices of christoffel symbols which are non-zero in Kerr Metric

einsteinpy.utils.kerr_utils.scaled_spin_factor(a, M, c=299792458.0, G=6.67408e-11)

Returns a scaled version of spin factor(a)

Parameters
  • a (float) – Number between 0 & 1

  • M (float) – Mass of massive body

  • c (float) – Speed of light. Defaults to speed in SI units.

  • G (float) – Gravitational constant. Defaults to Gravitaional Constant in SI units.

Returns

Scaled spinf factor to consider changed units

Return type

float

Raises

ValueError – If a not between 0 & 1

einsteinpy.utils.kerr_utils.sigma(r, theta, a)

Returns the value r^2 + a^2 * cos^2(theta) Specific to Boyer-Lindquist coordinates

Parameters
  • r (float) – Component r in vector

  • theta (float) – Component theta in vector

  • a (float) – Any constant

Returns

The value r^2 + a^2 * cos^2(theta)

Return type

float

einsteinpy.utils.kerr_utils.delta(r, M, a, c=299792458.0, G=6.67408e-11)

Returns the value r^2 - Rs * r + a^2 Specific to Boyer-Lindquist coordinates

Parameters
  • r (float) – Component r in vector

  • M (float) – Mass of massive body

  • a (float) – Any constant

Returns

The value r^2 - Rs * r + a^2

Return type

float

einsteinpy.utils.kerr_utils.metric(r, theta, M, a, c=299792458.0, G=6.67408e-11)

Returns the Kerr Metric

Parameters
  • r (float) – Distance from the centre

  • theta (float) – Angle from z-axis

  • M (float) – Mass of massive body

  • a (float) – Black Hole spin factor

  • c (float) – Speed of light

Returns

Numpy array of shape (4,4)

Return type

array

einsteinpy.utils.kerr_utils.metric_inv(r, theta, M, a, c=299792458.0, G=6.67408e-11)

Returns the inverse of Kerr Metric

Parameters
  • r (float) – Distance from the centre

  • theta (float) – Angle from z-axis

  • M (float) – Mass of massive body

  • a (float) – Black Hole spin factor

  • c (float) – Speed of light

Returns

Numpy array of shape (4,4)

Return type

array

einsteinpy.utils.kerr_utils.dmetric_dx(r, theta, M, a, c=299792458.0, G=6.67408e-11)

Returns differentiation of each component of Kerr metric tensor w.r.t. t, r, theta, phi

Parameters
  • r (float) – Distance from the centre

  • theta (float) – Angle from z-axis

  • M (float) – Mass of massive body

  • a (float) – Black Hole spin factor

  • c (float) – Speed of light

Returns

dmdx – Numpy array of shape (4,4,4) dmdx[0], dmdx[1], dmdx[2] & dmdx[3] is differentiation of metric w.r.t. t, r, theta & phi respectively

Return type

array

einsteinpy.utils.kerr_utils.christoffels(r, theta, M, a, c=299792458.0, G=6.67408e-11)

Returns the 3rd rank Tensor containing Christoffel Symbols for Kerr Metric

Parameters
  • r (float) – Distance from the centre

  • theta (float) – Angle from z-axis

  • M (float) – Mass of massive body

  • a (float) – Black Hole spin factor

  • c (float) – Speed of light

Returns

Numpy array of shape (4,4,4)

Return type

array

einsteinpy.utils.kerr_utils.kerr_time_velocity(pos_vec, vel_vec, mass, a)

Velocity of coordinate time wrt proper metric

Parameters
  • pos_vector (array) – Vector with r, theta, phi components in SI units

  • vel_vector (array) – Vector with velocities of r, theta, phi components in SI units

  • mass (kg) – Mass of the body

  • a (float) – Any constant

Returns

Velocity of time

Return type

one

einsteinpy.utils.kerr_utils.nonzero_christoffels()

Returns a list of tuples consisting of indices of christoffel symbols which are non-zero in Kerr Metric computed in real-time.

Returns

List of tuples each tuple (i,j,k) represent christoffel symbol with i as upper index and j,k as lower indices.

Return type

list

einsteinpy.utils.kerr_utils.spin_factor(J, M, c)

Calculate spin factor(a) of kerr body

Parameters
  • J (float) – Angular momentum in SI units(kg m2 s-2)

  • M (float) – Mass of body in SI units(kg)

  • c (float) – Speed of light

Returns

Spin factor (J/(Mc))

Return type

float

einsteinpy.utils.kerr_utils.event_horizon(M, a, theta=1.5707963267948966, coord='BL', c=299792458.0, G=6.67408e-11)

Calculate the radius of event horizon of Kerr black hole

Parameters
  • M (float) – Mass of massive body

  • a (float) – Black hole spin factor

  • theta (float) – Angle from z-axis in Boyer-Lindquist coordinates in radians. Mandatory for coord==’Spherical’. Defaults to pi/2.

  • coord (str) – Output coordinate system. ‘BL’ for Boyer-Lindquist & ‘Spherical’ for spherical. Defaults to ‘BL’.

Returns

[Radius of event horizon(R), angle from z axis(theta)] in BL/Spherical coordinates

Return type

array

einsteinpy.utils.kerr_utils.radius_ergosphere(M, a, theta=1.5707963267948966, coord='BL', c=299792458.0, G=6.67408e-11)

Calculate the radius of ergospere of Kerr black hole at a specific azimuthal angle

Parameters
  • M (float) – Mass of massive body

  • a (float) – Black hole spin factor

  • theta (float) – Angle from z-axis in Boyer-Lindquist coordinates in radians. Defaults to pi/2.

  • coord (str) – Output coordinate system. ‘BL’ for Boyer-Lindquist & ‘Spherical’ for spherical. Defaults to ‘BL’.

Returns

[Radius of ergosphere(R), angle from z axis(theta)] in BL/Spherical coordinates

Return type

array