Geladen massa#
In de vorige notebooks beschreven we de zwaartekracht van een ongeladen massa. In dit notebook voegen we elektrische lading toe en onderzoeken het effect op de ruimtetijdgeometrie.
import sys, pathlib
sys.path.insert(0, str(pathlib.Path().resolve().parent / 'shared'))
from ort_core import (C, G, K_E, GravityModel, M_SUN, R_SUN)
import math
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
1 Lading als energiebijdrage#
1.1 Twee energietermen#
In de ORT komt de zwaartekracht van een ongeladen massa uit de gravitatie-energieparameter \(v_{grav}^2 = 2GM/r\). Een geladen massa heeft een extra energiebijdrage: het elektrische veld zelf bevat energie.
De elektrostatische veldenergie buiten straal \(r\) is \(E_{elec} = k_e Q^2/(2r)\) — de zelfenergie van het elektrische veld van de centrale massa. Deze energie is altijd positief (proportioneel met \(Q^2\)) en verlaagt de effectieve valsnelheid, ongeacht de lading van een testdeeltje.
Omgerekend naar een energieparameter: \(v_{lading}^2 = 2 E_{elec} \cdot G / (c^2 r) = k_e Q^2 G/(c^2 r^2)\).
De effectieve valsnelheid:
met \(r_Q^2 = k_e Q^2 G / c^4\).
1.2 \(c_{local}\) met lading#
Uit de snelheidsnorm \(c_{local}^2 = c^2 - v_{eff}^2\) volgt:
1.3 De horizon#
De horizon ligt waar \(c_{local} = 0\). Door formule (2) gelijk te stellen aan nul ontstaat een kwadratische vergelijking:
De discriminant \(r_s^2 - 4r_Q^2\) bepaalt het aantal reële oplossingen:
\(Q < Q_{ext}\): twee reële oplossingen (\(r_+\) en \(r_-\)), met daartussen een gebied waar \(c_{local}^2 < 0\).
\(Q = Q_{ext}\): één oplossing (\(r_+ = r_- = r_s/2\)).
\(Q > Q_{ext}\): geen reële oplossingen — er is geen horizon.
Anders dan bij alleen zwaartekracht (waar er één oplossing is voor \(c_{local} = 0\)) zijn er met lading twee. De buitenste (\(r_+\)) is een eventhorizon net als bij een ongeladen massa. Bij de binnenste (\(r_-\)) geldt juist dat aan de binnenkant \(c_{local} > 0\): de ladingsenergie domineert daar over de gravitatie-energie, en \(c_{local}\) stijgt weer — zelfs tot boven \(c\) dicht bij \(r = 0\).
De interpretatie van het gebied binnen de eventhorizon valt buiten de scope van dit notebook.
Extremale lading#
1.4 Vergelijking met de ART#
De ART leidt dezelfde formule af als oplossing van de Einstein-vergelijkingen met een elektromagnetische brontensor — de Reissner-Nordström-metriek:
De ORT komt tot dezelfde formule vanuit twee energiebijdragen aan de snelheidsnorm: gravitatie (trekt) en elektrostatisch veld (duwt terug).
# Reissner-Nordström: vergelijking Schwarzschild vs geladen
M_BH = 10 * M_SUN
bh_sch = GravityModel(M_BH)
Q_ext = bh_sch.extremal_charge()
bh_half = GravityModel(M_BH, charge=0.5 * Q_ext)
bh_ext = GravityModel(M_BH, charge=0.99 * Q_ext)
print(f'=== Reissner-Nordström (10 M☉) ===')
print(f'r_s = {bh_sch.rs:.3e} m')
print(f'Q_ext = {Q_ext:.3e} C')
print()
for label, model in [('Q = 0 (Schwarzschild)', bh_sch),
('Q = 0.5 Q_ext', bh_half),
('Q = 0.99 Q_ext', bh_ext)]:
r_plus = model.r_plus
r_minus = model.r_minus
print(f'--- {label} ---')
print(f' r+ = {r_plus:.3e} m = {r_plus/bh_sch.rs:.4f} r_s')
print(f' r- = {r_minus:.3e} m = {r_minus/bh_sch.rs:.4f} r_s')
b = 10 * bh_sch.rs
alpha = model.light_deflection_arcsec(b)
print(f' Lichtafbuiging (b=10r_s): {alpha:.6f}"')
print()
=== Reissner-Nordström (10 M☉) ===
r_s = 2.954e+04 m
Q_ext = 1.714e+21 C
--- Q = 0 (Schwarzschild) ---
r+ = 2.954e+04 m = 1.0000 r_s
r- = 0.000e+00 m = 0.0000 r_s
Lichtafbuiging (b=10r_s): 41252.961249"
--- Q = 0.5 Q_ext ---
r+ = 2.756e+04 m = 0.9330 r_s
r- = 1.979e+03 m = 0.0670 r_s
Lichtafbuiging (b=10r_s): 40949.211249"
--- Q = 0.99 Q_ext ---
r+ = 1.685e+04 m = 0.5705 r_s
r- = 1.269e+04 m = 0.4295 r_s
Lichtafbuiging (b=10r_s): 40062.139749"
2 Effecten van lading#
2.1 Lading werkt zwaartekracht tegen#
De ladingsterm verhoogt \(c_{local}\), wat alle gravitatie-effecten verzwakt:
Effect |
Ongeladen |
Geladen |
Verandering |
|---|---|---|---|
Tijddilatatie |
sterker |
zwakker |
minder vertraging |
Lichtafbuiging |
groter |
kleiner |
minder afbuiging |
Baanprecissie |
groter |
kleiner |
minder precessie |
Eventhorizon |
\(r_s\) |
\(r_+ < r_s\) |
horizon krimpt |
# c_local profielen: Schwarzschild vs RN
r_over_rs = np.linspace(1.01, 10, 500)
fig, ax = plt.subplots(figsize=(10, 6))
for label, model, color, ls in [
('Q = 0 (Schwarzschild)', bh_sch, 'black', '-'),
('Q = 0.5 Q_ext', bh_half, 'blue', '--'),
('Q = 0.99 Q_ext', bh_ext, 'red', '-.')]:
cl = [model.c_local(f * bh_sch.rs) / C for f in r_over_rs]
ax.plot(r_over_rs, cl, color=color, ls=ls, lw=2, label=label)
ax.set_xlabel('$r / r_s$', fontsize=12)
ax.set_ylabel('$c_{local} / c$', fontsize=12)
ax.set_title('$c_{local}$ profiel: effect van lading', fontsize=14, fontweight='bold')
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_xlim(1, 10)
ax.set_ylim(0, 1.05)
plt.tight_layout()
plt.show()
2.2 De horizon als functie van de lading#
Formule (3) heeft twee oplossingen voor \(Q < Q_{ext}\), één oplossing voor \(Q = Q_{ext}\), en geen oplossingen voor \(Q > Q_{ext}\). De eventhorizon (\(r_+\)) als functie van de lading:
# Horizonten als functie van Q/Q_ext
q_frac = np.linspace(0, 1, 200)
r_plus_arr = []
r_minus_arr = []
for qf in q_frac:
model = GravityModel(M_BH, charge=qf * Q_ext)
r_plus_arr.append(model.r_plus / bh_sch.rs)
r_minus_arr.append(model.r_minus / bh_sch.rs)
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(q_frac, r_plus_arr, 'b-', lw=2, label='$r_+$ (buitenste horizon)')
ax.plot(q_frac, r_minus_arr, 'r--', lw=2, label='$r_-$ (binnenste horizon)')
ax.fill_between(q_frac, r_minus_arr, r_plus_arr, alpha=0.1, color='purple')
ax.set_xlabel('$Q / Q_{ext}$', fontsize=12)
ax.set_ylabel('$r / r_s$', fontsize=12)
ax.set_title('Horizonten als functie van lading', fontsize=14, fontweight='bold')
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.axhline(0.5, color='gray', ls=':', lw=1, label='$r_s/2$')
ax.set_xlim(0, 1)
ax.set_ylim(0, 1.1)
plt.tight_layout()
plt.show()
print(f'Bij Q = Q_ext: r+ = r- = {bh_sch.rs/2:.3e} m = 0.5 r_s')
Bij Q = Q_ext: r+ = r- = 1.477e+04 m = 0.5 r_s
3 Vergelijking met Schwarzschild#
De effecten van lading op de drie klassieke testen:
# Vergelijking: lichtafbuiging en precissie voor verschillende ladingen
b = 10 * bh_sch.rs
a_orbit = 50 * bh_sch.rs
e_orbit = 0.3
print(f'=== Effect van lading op waarneembare effecten ===')
print(f'Impactparameter b = 10 r_s, baanparameters a = 50 r_s, e = {e_orbit}')
print()
print(f'{"Q/Q_ext":>8s} {"r+/r_s":>8s} {"lichtafb.":>12s} {"precissie/omloop":>18s} {"c_local(5rs)":>14s}')
print('-' * 68)
for qf in [0.0, 0.1, 0.3, 0.5, 0.7, 0.9, 0.99]:
model = GravityModel(M_BH, charge=qf * Q_ext)
alpha = model.light_deflection_arcsec(b)
dphi = model.orbital_precession(a_orbit, e_orbit)
cl = model.c_local(5 * bh_sch.rs) / C
print(f'{qf:8.2f} {model.r_plus/bh_sch.rs:8.4f} {alpha:12.6f}" {math.degrees(dphi)*3600:18.6f}" {cl:14.6f}')
=== Effect van lading op waarneembare effecten ===
Impactparameter b = 10 r_s, baanparameters a = 50 r_s, e = 0.3
Q/Q_ext r+/r_s lichtafb. precissie/omloop c_local(5rs)
--------------------------------------------------------------------
0.00 1.0000 41252.961249" 42725.274725" 0.894427
0.10 0.9975 41240.811249" 42723.709697" 0.894483
0.30 0.9770 41143.611249" 42711.189470" 0.894930
0.50 0.9330 40949.211249" 42686.149016" 0.895824
0.70 0.8571 40657.611249" 42648.588335" 0.897162
0.90 0.7179 40268.811249" 42598.507427" 0.898944
0.99 0.5705 40062.139749" 42571.886294" 0.899889
4 Het riviermodel met lading#
In het riviermodel stroomt de ruimte naar de massa toe met \(v_{grav}\). Lading vertraagt de stroom — de elektrostatische zelfenergie vermindert de effectieve stroomsnelheid tot \(v_{eff} = \sqrt{v_{grav}^2 - v_{lading}^2}\).
Ongeladen: de stroom bereikt \(c\) bij \(r = r_s\) → één horizon
Geladen: de stroom bereikt \(c\) bij een kleinere straal (\(r_+ < r_s\)) → horizon krimpt
Extremaal: de stroom bereikt precies \(c\) bij \(r = r_s/2\) → marginale horizon
Overladen (\(Q > Q_{ext}\)): de stroom bereikt \(c\) nooit → geen horizon
5 Samenvatting#
Schwarzschild |
Reissner-Nordström |
|
|---|---|---|
\((c_{local}/c)^2\) |
\(1 - r_s/r\) |
\(1 - r_s/r + r_Q^2/r^2\) |
Oplossingen \(c_{local} = 0\) |
1 (\(r = r_s\)) |
2 (\(r_+\) en \(r_-\)) |
Eventhorizon |
\(r_s\) |
\(r_+\) (kleiner dan \(r_s\)) |
Extremaal |
— |
\(r_+ = r_s/2\), geen horizon bij \(Q > Q_{ext}\) |
\(c_{local}\) |
\(c\sqrt{1 - r_s/r}\) |
\(c\sqrt{1 - r_s/r + r_Q^2/r^2}\) |
Lading effect |
— |
Verzwakt alle gravitatie-effecten |
ORT-interpretatie |
Rivierstroming \(v_{grav}\) |
Vertraagde stroom door tegendruk |
Formule (3) heeft twee oplossingen. De buitenste (\(r_+\)) is de eventhorizon. Tussen de twee oplossingen is \(c_{local}^2 < 0\); daarbuiten én daarbinnen is \(c_{local}^2 > 0\). De interpretatie van het gebied binnen de eventhorizon valt buiten de scope van dit notebook.