| Download
SageMath notebooks associated to the Black Hole Lectures (https://luth.obspm.fr/~luthier/gourgoulhon/bh16)
Project: BHLectures
Views: 20113Kernel: SageMath 9.3.beta5
Latitudinal motion of geodesics in Kerr spacetime
This Jupyter/SageMath notebook is relative to the lectures Geometry and physics of black holes.
In [1]:
%display latex
Case L=0
Subcase a2E2<a2μ2
In [2]:
g = plot(cos(x)^2, (x, 0, pi), thickness=2, axes_labels=[r'$\theta$', r'$V(\theta)\, /\, V_0$'], ticks=[pi/4, None], tick_formatter=[pi, None], fontsize=12, axes_labels_size=1.2, title=r'$L=0,\quad a\neq 0,\quad |E|< \mu$', axes=False, frame=True, axes_pad=0)
In [3]:
Q = 0.75 th0 = arccos(sqrt(Q)) th1 = pi - th0 g += line([(th0, Q), (th1, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', (pi/2, 1.1*Q), color='red', fontsize=16) g += line([(th0, -0.1), (th0, Q)], color='red', linestyle='dashed') + \ text(r'$\theta_{\rm m}$', (th0, -0.15), color='red', fontsize=16) g += line([(th1, -0.1), (th1, Q)], color='red', linestyle='dashed') + \ text(r'$\pi-\theta_{\rm m}$', (1.02*th1, -0.15), color='red', fontsize=16) #show(g, ymin=-0.05)
In [4]:
Q = 1.2 th0 = 0 th1 = pi g += line([(th0, Q), (th1, Q)], color='brown', thickness=2) + \ text(r'$Q = Q_2$', (pi/2, 1.05*Q), color='brown', fontsize=16) #show(g, ymin=-0.05, ymax=1.35)
In [5]:
Q = 1 th0 = 0 th1 = pi g += line([(th0, Q), (th1, Q)], color='grey', linestyle='dashed', thickness=2) + \ text(r'$Q = a^2(\mu^2 - E^2)$', (pi/2, 1.06*Q), color='grey', fontsize=16) + \ point([(th0, Q)], size=60, color='grey', zorder=10) + \ point([(th1, Q)], size=60, color='grey', zorder=10)
In [6]:
g += point([(pi/2, 0)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=0$', (pi/2, 0.08), color='darkorange', fontsize=16) show(g, ymin=-0.05, ymax=1.35)
In [7]:
g.save('gek_th_pot_L_0_low_E.pdf', ymin=-0.05, ymax=1.35)
Subcase a2E2>a2μ2
In [8]:
g = plot(-cos(x)^2, (x, 0, pi), thickness=2, axes_labels=[r'$\theta$', r'$V(\theta)\, /\, V_0$'], ticks=[pi/4, None], tick_formatter=[pi, None], fontsize=12, axes_labels_size=1.2, title=r'$L=0,\quad a\neq 0,\quad |E| > \mu$', axes=False, frame=True, axes_pad=0)
In [9]:
Q = -0.3 th0 = arccos(sqrt(abs(Q))) th1 = pi - th0 g += line([(0, Q), (th0, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', (pi/8, 0.8*Q), color='red', fontsize=16) g += line([(th0, -1.2), (th0, Q)], color='red', linestyle='dashed') + \ text(r'$\theta_{\rm v}$', (th0, -1.2), color='red', fontsize=16) g += line([(th1, Q), (pi, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', (7*pi/8, 0.8*Q), color='red', fontsize=16) g += line([(th1, -1.2), (th1, Q)], color='red', linestyle='dashed') + \ text(r'$\pi-\theta_{\rm v}$', (0.97*th1, -1.2), color='red', fontsize=16) #show(g, ymin=-1.1, ymax=0.05)
In [10]:
Q = 0.2 th0 = 0 th1 = pi g += line([(th0, Q), (th1, Q)], color='brown', thickness=2) + \ text(r'$Q = Q_2$', (pi/2, Q+0.08), color='brown', fontsize=16) #show(g, ymin=-1.1)
In [11]:
g += point([(pi/2, 0)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=0$', (pi/2, 0.08), color='darkorange', fontsize=16) + \ line([(0,0), (pi,0)], color='darkorange', linestyle='dashed', thickness=2) + \ point([(0, -1)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=Q_{\rm min}$', (-0.02, -0.9), color='darkorange', fontsize=16) + \ point([(pi, -1)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=Q_{\rm min}$', (3.15, -0.9), color='darkorange', fontsize=16) show(g, ymin=-1.1, ymax=0.4)
In [12]:
g.save('gek_th_pot_L_0_high_E.pdf', ymin=-1.1, ymax=0.4)
Case L=0
Subcase L2≥a2(E2−μ2)
Value of a2(E2−μ2)/L2:
In [13]:
b = var('b')
In [14]:
V(x, b) = cos(x)^2 * (-b + 1/sin(x)^2) V(x, b)
−(b−sin(x)21)cos(x)2
In [15]:
b0 = 0.5 g = plot(V(x, b0), (x, 0.3, pi-0.3), thickness=2, axes_labels=[r'$\theta$', r'$V(\theta)\, /\, L^2$'], ticks=[pi/4, None], tick_formatter=[pi, None], fontsize=12, axes_labels_size=1.2, title=r'$L\neq 0,\quad L^2 \geq a^2(E^2 - \mu^2)$', axes=False, frame=True, axes_pad=0) #show(g, xmin=0, xmax=pi)
In [16]:
Q = 4 th0 = find_root(V(x,b0) - Q, 0.3, 1) th0
0.44452767095852364
In [17]:
th1 = pi - th0 g += line([(th0, Q), (th1, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', (pi/2, 1.15*Q), color='red', fontsize=16) g += line([(th0, -0.4), (th0, Q)], color='red', linestyle='dashed') + \ text(r'$\theta_{\rm m}$', (th0, -1.1), color='red', fontsize=16) g += line([(th1, -0.4), (th1, Q)], color='red', linestyle='dashed') + \ text(r'$\pi-\theta_{\rm m}$', (1.02*th1, -1.1), color='red', fontsize=16) g += point([(pi/2, 0)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=0$', (pi/2, 0.7), color='darkorange', fontsize=16) show(g, xmin=0, xmax=pi, ymin=-0.5)
In [18]:
g.save('gek_th_pot_high_L.pdf')
Subcase L2<a2(E2−μ2)
In [19]:
b0 = 9 g = plot(V(x, b0), (x, 0.25, pi-0.25), thickness=2, axes_labels=[r'$\theta$', r'$V(\theta)\, /\, L^2$'], ticks=[pi/4, None], tick_formatter=[pi, None], fontsize=12, axes_labels_size=1.2, title=r'$L\neq 0,\quad L^2 < a^2(E^2 - \mu^2)$', axes=False, frame=True, axes_pad=0) #show(g, xmin=0, xmax=pi)
In [20]:
Q = -2 th0 = find_root(V(x,b0) - Q, 0.3, 1) th0
0.39836002690780375
In [21]:
th1 = find_root(V(x,b0) - Q, 1, 1.5) th1
1.033922615599375
In [22]:
th2 = pi - th0 th3 = pi - th1
In [23]:
g += line([(th0, Q), (th1, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', ((th0+th1)/2, Q+0.6), color='red', fontsize=16) + \ line([(th0, -5.5), (th0, Q)], color='red', linestyle='dashed') + \ text(r'$\theta_{\rm m}$', (th0, -6.2), color='red', fontsize=16) + \ line([(th1, -5.5), (th1, Q)], color='red', linestyle='dashed') + \ text(r'$\theta_{\rm v}$', (th1, -6.2), color='red', fontsize=16) + \ line([(th2, Q), (th3, Q)], color='red', thickness=2) + \ text(r'$Q = Q_1$', ((th2+th3)/2, Q+0.6), color='red', fontsize=16) + \ line([(th2, -5.5), (th2, Q)], color='red', linestyle='dashed') + \ text(r'$\pi-\theta_{\rm m}$', (th2, -6.2), color='red', fontsize=16) + \ line([(th3, -5.5), (th3, Q)], color='red', linestyle='dashed') + \ text(r'$\pi-\theta_{\rm v}$', (th3, -6.2), color='red', fontsize=16) show(g, xmin=0, xmax=pi, ymin=-4.5, ymax=6)
In [24]:
Q = 0 th0 = find_root(V(x,b0) - Q, 0.1, 1) th0
0.33983690945412354
In [25]:
g += point([(pi/2, 0)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=0$', (pi/2, 0.5), color='darkorange', fontsize=16) + \ line([(th0,0), (pi-th0,0)], color='darkorange', linestyle='dashed', thickness=2)
In [26]:
Qm = - (sqrt(b0) - 1)^2 Qm
−4
In [27]:
ths = n(arcsin(1/b0^(1/4))) ths
0.615479708670387
In [28]:
g += point([(ths, Qm)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=Q_{\rm min}$', (1.1*ths, -4.5), color='darkorange', fontsize=16) + \ point([(pi-ths, Qm)], size=60, color='darkorange', zorder=10) + \ text(r'$Q=Q_{\rm min}$', (1.03*(pi-ths), -4.5), color='darkorange', fontsize=16) show(g, xmin=0, xmax=pi, ymin=-5.5, ymax=5)
In [29]:
Q = 2 th0 = find_root(V(x,b0) - Q, 0.2, 1) th0
0.30349625193733354
In [30]:
th1 = pi - th0 g += line([(th0, Q), (th1, Q)], color='brown', thickness=2) + \ text(r'$Q = Q_2$', ((th0+th1)/2, Q+0.6), color='brown', fontsize=16) show(g, xmin=0, xmax=pi, ymin=-5.5, ymax=5)
In [31]:
g.save('gek_th_pot_low_L.pdf')