Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

SageMath notebooks associated to the Black Hole Lectures (https://luth.obspm.fr/~luthier/gourgoulhon/bh16)

Project: BHLectures
Views: 20113
Kernel: 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.

%display latex

Case L=0L=0

Subcase a2E2<a2μ2a^2 E^2 < a^2 \mu^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)
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)
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)
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)
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)
Image in a Jupyter notebook
g.save('gek_th_pot_L_0_low_E.pdf', ymin=-0.05, ymax=1.35)

Subcase a2E2>a2μ2a^2 E^2 > a^2 \mu^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)
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)
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)
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)
Image in a Jupyter notebook
g.save('gek_th_pot_L_0_high_E.pdf', ymin=-1.1, ymax=0.4)

Case L0L\not=0

Subcase L2a2(E2μ2)L^2 \geq a^2(E^2 - \mu^2)

Value of a2(E2μ2)/L2a^2(E^2-\mu^2)/L^2:

b = var('b')
V(x, b) = cos(x)^2 * (-b + 1/sin(x)^2) V(x, b)
(b1sin(x)2)cos(x)2\renewcommand{\Bold}[1]{\mathbf{#1}}-{\left(b - \frac{1}{\sin\left(x\right)^{2}}\right)} \cos\left(x\right)^{2}
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)
Q = 4 th0 = find_root(V(x,b0) - Q, 0.3, 1) th0
0.44452767095852364\renewcommand{\Bold}[1]{\mathbf{#1}}0.44452767095852364
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)
Image in a Jupyter notebook
g.save('gek_th_pot_high_L.pdf')

Subcase L2<a2(E2μ2)L^2 < a^2(E^2 - \mu^2)

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)
Q = -2 th0 = find_root(V(x,b0) - Q, 0.3, 1) th0
0.39836002690780375\renewcommand{\Bold}[1]{\mathbf{#1}}0.39836002690780375
th1 = find_root(V(x,b0) - Q, 1, 1.5) th1
1.033922615599375\renewcommand{\Bold}[1]{\mathbf{#1}}1.033922615599375
th2 = pi - th0 th3 = pi - th1
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)
Image in a Jupyter notebook
Q = 0 th0 = find_root(V(x,b0) - Q, 0.1, 1) th0
0.33983690945412354\renewcommand{\Bold}[1]{\mathbf{#1}}0.33983690945412354
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)
Qm = - (sqrt(b0) - 1)^2 Qm
4\renewcommand{\Bold}[1]{\mathbf{#1}}-4
ths = n(arcsin(1/b0^(1/4))) ths
0.615479708670387\renewcommand{\Bold}[1]{\mathbf{#1}}0.615479708670387
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)
Image in a Jupyter notebook
Q = 2 th0 = find_root(V(x,b0) - Q, 0.2, 1) th0
0.30349625193733354\renewcommand{\Bold}[1]{\mathbf{#1}}0.30349625193733354
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)
Image in a Jupyter notebook
g.save('gek_th_pot_low_L.pdf')