Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ok-landscape
GitHub Repository: Ok-landscape/computational-pipeline
Path: blob/main/latex-templates/templates/astrophysics/black_holes.tex
51 views
unlisted
1
% Black Hole Physics
2
\documentclass[11pt,a4paper]{article}
3
\usepackage[utf8]{inputenc}
4
\usepackage[T1]{fontenc}
5
\usepackage{amsmath,amssymb}
6
\usepackage{graphicx}
7
\usepackage{booktabs}
8
\usepackage{siunitx}
9
\usepackage{geometry}
10
\geometry{margin=1in}
11
\usepackage{pythontex}
12
\usepackage{hyperref}
13
\usepackage{float}
14
15
\title{Black Hole Physics\\Schwarzschild Radius, Accretion, and Hawking Radiation}
16
\author{Astrophysics Research Group}
17
\date{\today}
18
19
\begin{document}
20
\maketitle
21
22
\begin{abstract}
23
Computational analysis of black hole physics including Schwarzschild geometry, accretion disk properties, and Hawking radiation calculations.
24
\end{abstract}
25
26
\section{Introduction}
27
28
Black holes are regions of spacetime where gravity is so strong that nothing can escape.
29
30
\begin{pycode}
31
import numpy as np
32
import matplotlib.pyplot as plt
33
plt.rcParams['text.usetex'] = True
34
plt.rcParams['font.family'] = 'serif'
35
36
# Physical constants
37
G = 6.674e-11 # Gravitational constant
38
c = 2.998e8 # Speed of light
39
h_bar = 1.055e-34 # Reduced Planck constant
40
k_B = 1.381e-23 # Boltzmann constant
41
M_sun = 1.989e30 # Solar mass
42
\end{pycode}
43
44
\section{Schwarzschild Radius}
45
46
$r_s = \frac{2GM}{c^2}$
47
48
\begin{pycode}
49
masses = np.logspace(0, 10, 100) # Solar masses
50
r_s = 2 * G * masses * M_sun / c**2
51
52
fig, ax = plt.subplots(figsize=(10, 6))
53
ax.loglog(masses, r_s / 1000, 'b-', linewidth=2)
54
ax.set_xlabel('Mass ($M_\\odot$)')
55
ax.set_ylabel('Schwarzschild Radius (km)')
56
ax.set_title('Schwarzschild Radius vs Mass')
57
ax.grid(True, alpha=0.3, which='both')
58
59
# Mark notable objects
60
notable = {'Stellar (10)': 10, 'Sgr A* (4e6)': 4e6, 'M87* (6.5e9)': 6.5e9}
61
for name, M in notable.items():
62
r = 2 * G * M * M_sun / c**2
63
ax.plot(M, r/1000, 'ro', markersize=8)
64
ax.annotate(name, (M, r/1000), xytext=(5, 5), textcoords='offset points', fontsize=8)
65
plt.tight_layout()
66
plt.savefig('schwarzschild_radius.pdf', dpi=150, bbox_inches='tight')
67
plt.close()
68
\end{pycode}
69
70
\begin{figure}[H]
71
\centering
72
\includegraphics[width=0.9\textwidth]{schwarzschild_radius.pdf}
73
\caption{Schwarzschild radius as function of mass.}
74
\end{figure}
75
76
\section{ISCO and Photon Sphere}
77
78
\begin{pycode}
79
M_bh = 10 * M_sun
80
r_s_bh = 2 * G * M_bh / c**2
81
r_photon = 1.5 * r_s_bh # Photon sphere
82
r_isco = 3 * r_s_bh # Innermost stable circular orbit
83
84
r = np.linspace(1.01 * r_s_bh, 20 * r_s_bh, 1000)
85
86
# Effective potential for massive particle (L = 4GM/c)
87
L = 4 * G * M_bh / c
88
V_eff = -G * M_bh / r + L**2 / (2 * r**2) - G * M_bh * L**2 / (c**2 * r**3)
89
V_eff_normalized = V_eff / (c**2)
90
91
fig, ax = plt.subplots(figsize=(10, 6))
92
ax.plot(r / r_s_bh, V_eff_normalized, 'b-', linewidth=2)
93
ax.axvline(x=1.5, color='g', linestyle='--', label=f'Photon sphere')
94
ax.axvline(x=3, color='r', linestyle='--', label=f'ISCO')
95
ax.set_xlabel('$r/r_s$')
96
ax.set_ylabel('$V_{eff}/c^2$')
97
ax.set_title('Effective Potential near Black Hole')
98
ax.legend()
99
ax.grid(True, alpha=0.3)
100
ax.set_xlim([1, 20])
101
plt.tight_layout()
102
plt.savefig('effective_potential.pdf', dpi=150, bbox_inches='tight')
103
plt.close()
104
\end{pycode}
105
106
\begin{figure}[H]
107
\centering
108
\includegraphics[width=0.9\textwidth]{effective_potential.pdf}
109
\caption{Effective potential showing ISCO and photon sphere.}
110
\end{figure}
111
112
\section{Hawking Temperature}
113
114
$T_H = \frac{\hbar c^3}{8\pi G M k_B}$
115
116
\begin{pycode}
117
masses_hawking = np.logspace(-8, 10, 100) * M_sun
118
T_H = h_bar * c**3 / (8 * np.pi * G * masses_hawking * k_B)
119
120
fig, ax = plt.subplots(figsize=(10, 6))
121
ax.loglog(masses_hawking / M_sun, T_H, 'b-', linewidth=2)
122
ax.axhline(y=2.725, color='r', linestyle='--', label='CMB Temperature')
123
ax.set_xlabel('Mass ($M_\\odot$)')
124
ax.set_ylabel('Hawking Temperature (K)')
125
ax.set_title('Hawking Temperature vs Black Hole Mass')
126
ax.legend()
127
ax.grid(True, alpha=0.3, which='both')
128
plt.tight_layout()
129
plt.savefig('hawking_temperature.pdf', dpi=150, bbox_inches='tight')
130
plt.close()
131
132
# Example calculation
133
M_example = 10 * M_sun
134
T_example = h_bar * c**3 / (8 * np.pi * G * M_example * k_B)
135
\end{pycode}
136
137
\begin{figure}[H]
138
\centering
139
\includegraphics[width=0.9\textwidth]{hawking_temperature.pdf}
140
\caption{Hawking temperature for different black hole masses.}
141
\end{figure}
142
143
\section{Accretion Disk Temperature}
144
145
$T(r) = \left(\frac{3GM\dot{M}}{8\pi\sigma r^3}\right)^{1/4}$
146
147
\begin{pycode}
148
sigma_sb = 5.67e-8 # Stefan-Boltzmann constant
149
M_dot = 1e-8 * M_sun / (365.25 * 24 * 3600) # Accretion rate
150
151
r_disk = np.linspace(3 * r_s_bh, 100 * r_s_bh, 100)
152
T_disk = (3 * G * M_bh * M_dot / (8 * np.pi * sigma_sb * r_disk**3))**0.25
153
154
fig, ax = plt.subplots(figsize=(10, 6))
155
ax.semilogy(r_disk / r_s_bh, T_disk, 'b-', linewidth=2)
156
ax.set_xlabel('$r/r_s$')
157
ax.set_ylabel('Temperature (K)')
158
ax.set_title('Accretion Disk Temperature Profile')
159
ax.grid(True, alpha=0.3)
160
plt.tight_layout()
161
plt.savefig('disk_temperature.pdf', dpi=150, bbox_inches='tight')
162
plt.close()
163
\end{pycode}
164
165
\begin{figure}[H]
166
\centering
167
\includegraphics[width=0.9\textwidth]{disk_temperature.pdf}
168
\caption{Temperature profile of thin accretion disk.}
169
\end{figure}
170
171
\section{Time Dilation}
172
173
\begin{pycode}
174
r_time = np.linspace(1.01 * r_s_bh, 10 * r_s_bh, 100)
175
time_dilation = np.sqrt(1 - r_s_bh / r_time)
176
177
fig, ax = plt.subplots(figsize=(10, 6))
178
ax.plot(r_time / r_s_bh, time_dilation, 'b-', linewidth=2)
179
ax.set_xlabel('$r/r_s$')
180
ax.set_ylabel('$d\\tau/dt$')
181
ax.set_title('Gravitational Time Dilation')
182
ax.grid(True, alpha=0.3)
183
ax.set_xlim([1, 10])
184
ax.set_ylim([0, 1])
185
plt.tight_layout()
186
plt.savefig('time_dilation.pdf', dpi=150, bbox_inches='tight')
187
plt.close()
188
\end{pycode}
189
190
\begin{figure}[H]
191
\centering
192
\includegraphics[width=0.9\textwidth]{time_dilation.pdf}
193
\caption{Time dilation factor near black hole.}
194
\end{figure}
195
196
\section{Eddington Luminosity}
197
198
$L_{Edd} = \frac{4\pi GMm_pc}{\sigma_T}$
199
200
\begin{pycode}
201
m_p = 1.673e-27 # Proton mass
202
sigma_T = 6.65e-29 # Thomson cross-section
203
L_sun = 3.828e26 # Solar luminosity
204
205
masses_edd = np.logspace(0, 10, 100)
206
L_edd = 4 * np.pi * G * masses_edd * M_sun * m_p * c / sigma_T
207
208
fig, ax = plt.subplots(figsize=(10, 6))
209
ax.loglog(masses_edd, L_edd / L_sun, 'b-', linewidth=2)
210
ax.set_xlabel('Mass ($M_\\odot$)')
211
ax.set_ylabel('Eddington Luminosity ($L_\\odot$)')
212
ax.set_title('Eddington Limit')
213
ax.grid(True, alpha=0.3, which='both')
214
plt.tight_layout()
215
plt.savefig('eddington_luminosity.pdf', dpi=150, bbox_inches='tight')
216
plt.close()
217
218
L_edd_10 = 4 * np.pi * G * 10 * M_sun * m_p * c / sigma_T
219
\end{pycode}
220
221
\begin{figure}[H]
222
\centering
223
\includegraphics[width=0.9\textwidth]{eddington_luminosity.pdf}
224
\caption{Eddington luminosity limit.}
225
\end{figure}
226
227
\section{Black Hole Spin}
228
229
\begin{pycode}
230
a_spin = np.linspace(0, 0.998, 100) # Dimensionless spin parameter
231
r_isco_spin = 3 + (3 - a_spin) * np.sqrt(3 + a_spin) - np.sqrt((3 - a_spin) * (3 + a_spin + 2 * np.sqrt(3 + a_spin)))
232
233
fig, ax = plt.subplots(figsize=(10, 6))
234
ax.plot(a_spin, r_isco_spin, 'b-', linewidth=2)
235
ax.set_xlabel('Spin Parameter $a/M$')
236
ax.set_ylabel('ISCO Radius ($r_g$)')
237
ax.set_title('ISCO vs Kerr Spin Parameter')
238
ax.grid(True, alpha=0.3)
239
plt.tight_layout()
240
plt.savefig('kerr_isco.pdf', dpi=150, bbox_inches='tight')
241
plt.close()
242
\end{pycode}
243
244
\begin{figure}[H]
245
\centering
246
\includegraphics[width=0.9\textwidth]{kerr_isco.pdf}
247
\caption{ISCO radius for Kerr black holes.}
248
\end{figure}
249
250
\section{Results}
251
252
\begin{pycode}
253
r_s_10 = 2 * G * 10 * M_sun / c**2
254
print(r'\begin{table}[H]')
255
print(r'\centering')
256
print(r'\caption{Black Hole Properties (10 $M_\odot$)}')
257
print(r'\begin{tabular}{@{}lc@{}}')
258
print(r'\toprule')
259
print(r'Property & Value \\')
260
print(r'\midrule')
261
print(f'Schwarzschild radius & {r_s_10/1000:.2f} km \\\\')
262
print(f'ISCO radius & {3*r_s_10/1000:.2f} km \\\\')
263
print(f'Hawking temperature & {T_example:.2e} K \\\\')
264
print(f'Eddington luminosity & {L_edd_10/L_sun:.2e} $L_\\odot$ \\\\')
265
print(r'\bottomrule')
266
print(r'\end{tabular}')
267
print(r'\end{table}')
268
\end{pycode}
269
270
\section{Conclusions}
271
272
This analysis covers key aspects of black hole physics including Schwarzschild geometry, thermal properties, and accretion processes.
273
274
\end{document}
275
276