# Visualizing event horizon and ergosphere of Kerr black hole¶

## Importing required modules¶

[1]:

import numpy as np
import astropy.units as u
import matplotlib.pyplot as plt


## Defining the black hole charecteristics¶

[2]:

M = 4e30
# for nearly maximally rotating black hole
a1 = 0.499999*scr
# for ordinary black hole
a2 = 0.3*scr


## Calculating the ergosphere and event horizon for spherical coordinates¶

[3]:

ergo1, ergo2, hori1, hori2 = list(), list(), list(), list()
thetas = np.linspace(0, np.pi, 720)
for t in thetas:
hori1.append(kerr_utils.event_horizon(M, a1, t, "Spherical"))
hori2.append(kerr_utils.event_horizon(M, a2, t, "Spherical"))
ergo1, ergo2, hori1, hori2 = np.array(ergo1), np.array(ergo2), np.array(hori1), np.array(hori2)


## Calculating the X, Y coordinates for plotting¶

[4]:

Xe1, Ye1 = ergo1[:,0] * np.sin(ergo1[:,1]), ergo1[:,0] * np.cos(ergo1[:,1])
Xh1, Yh1 = hori1[:,0] * np.sin(hori1[:,1]), hori1[:,0] * np.cos(hori1[:,1])
Xe2, Ye2 = ergo2[:,0] * np.sin(ergo2[:,1]), ergo2[:,0] * np.cos(ergo2[:,1])
Xh2, Yh2 = hori2[:,0] * np.sin(hori2[:,1]), hori2[:,0] * np.cos(hori2[:,1])


## Plot for maximally rotating black hole¶

[5]:

%matplotlib inline
fig, ax = plt.subplots()
# for maximally rotating black hole
ax.fill(Xh1, Yh1, 'b', Xe1, Ye1, 'r', alpha=0.3)
ax.fill(-1*Xh1, Yh1, 'b', -1*Xe1, Ye1, 'r', alpha=0.3)

[5]:

[<matplotlib.patches.Polygon at 0x7fd4307cfed0>,
<matplotlib.patches.Polygon at 0x7fd4307db150>]


## Plot for rotating(normally) black hole¶

[6]:

%matplotlib inline
fig, ax = plt.subplots()
ax.fill(Xh2, Yh2, 'b', Xe2, Ye2, 'r', alpha=0.3)
ax.fill(-1*Xh2, Yh2, 'b', -1*Xe2, Ye2, 'r', alpha=0.3)

[6]:

[<matplotlib.patches.Polygon at 0x7fd430817d50>,
<matplotlib.patches.Polygon at 0x7fd4308dfe50>]

• The inner body represents event horizon and outer one represents ergosphere. It can be concluded that with decrease in angular momentum, radius of event horizon increases, and that of ergosphere decreases.