Skip to content

anindex/penrose_process

Repository files navigation

Penrose Energy Extraction via Rocket Propulsion

arXiv License: MIT

Numerical study of energy extraction from rotating (Kerr) black holes via the Penrose process using rocket propulsion. This repository accompanies the paper "On the rarity of rocket-driven Penrose extraction in Kerr spacetime".

Results

Through 252,000 trajectory simulations (112,000 main experimental phases + 140,000 spin-threshold characterization), we establish:

Finding Value
Broad-scan success rate ($a/M = 0.95$) ~1%
Sweet-spot success rate ($a/M \geq 0.95$) 11--14%
Peak success rate ($v_e = 0.98c$, $\delta m = 0.4$) ~88.5%
Critical spin threshold $0.88 < a_{\rm crit}/M \lesssim 0.89$
Single-impulse efficiency $\eta_{\rm cum} \approx 19%$
Continuous thrust efficiency 2--4%

Sweet spot parameters: specific energy $E_0 \approx 1.2$, specific angular momentum $L_z \approx 3.0$, $v_e \gtrsim 0.91c$


Visualizations

Single Impulse Thrust

A single impulsive burn at periapsis achieves maximum efficiency (~19%) by concentrating all thrust at the point of minimum exhaust energy.

Single Impulse Penrose Extraction

Continuous Thrust

Sustained thrust throughout the ergosphere passage demonstrates path-averaging effects that reduce efficiency to 2--4%.

Continuous Penrose Extraction


Physics Overview

The Penrose Process

Within the ergosphere of a Kerr black hole, the stationary Killing vector becomes spacelike, permitting negative-energy states. A spacecraft can exploit this by ejecting exhaust with negative Killing energy $E_{\rm ex} < 0$, gaining energy at the expense of the black hole's rotation.

Propulsion Model

We work in the test-particle limit ($m_0 \ll M$), so backreaction and self-force are negligible. The code implements exact 4-momentum conservation:

$$p'_\mu = p_\mu - \delta\mu , u_{{\rm ex},\mu}$$

where the exhaust 4-velocity is $u_{\rm ex}^\mu = \gamma_e(u^\mu - v_e s^\mu)$ for exhaust speed $v_e$ and spatial direction $s^\mu$ orthogonal to the rocket's 4-velocity.

Penrose signature: Energy extraction occurs when exhaust Killing energy $E_{\rm ex} = -\gamma_e(u_t - v_e s_t) < 0$.


Repository Structure

penrose_process/
|── continuous_thrust_case.py   # Sustained ergosphere thrust
|── single_thrust_case.py       # Single impulsive burn at periapsis
|── kerr_utils.py               # Kerr metric utilities
|── experiments/
|   |── trajectory_classifier.py    # Orbit classification
|   |── parameter_sweep.py          # Grid-based exploration
|   |── comprehensive_sweep.py      # Full statistical sweeps
|   |── thrust_comparison.py        # Strategy comparison
|   |── ensemble.py                 # Monte Carlo analysis
|   |── run_trajectory_study.py     # CLI runner
|   `── trajectory_visualization.py # Animated visualizations
|── tests/                      # Physics validation tests
`── results/                    # Generated output

Installation

pip install -r requirements.txt

Requirements: Python >= 3.8, numpy, scipy, matplotlib


Usage

Run simulations

# Single impulse case
python single_thrust_case.py

# Continuous thrust case
python continuous_thrust_case.py

Parameter studies

# Quick validation (~2 min)
python experiments/run_trajectory_study.py --mode quick

# Standard study (~10 min)
python experiments/run_trajectory_study.py --mode standard

# Full analysis (~30 min)
python experiments/run_trajectory_study.py --mode full

Generate animations

python experiments/trajectory_visualization.py --spin 0.95

Reproducing Paper Figures

All six figures from the paper can be reproduced using the provided scripts.

Quick reproduction (uses existing/fallback data)

# Generate all 6 figures (PDF + PNG)
python experiments/generate_prd_figures.py

This creates figures/fig1_orbit_classification.pdf through figures/fig6_ultrarel_saturation.pdf.

Full regeneration from simulations

To regenerate the underlying sweep data from scratch (~120,000 trajectories, 4-8 hours):

# Regenerate JSON data for Figures 5 and 6
python experiments/regenerate_sweep_data.py

# Then generate figures from new data
python experiments/generate_prd_figures.py

Options for regenerate_sweep_data.py:

  • --fig5: Only regenerate Figure 5 data (velocity phase transition)
  • --fig6: Only regenerate Figure 6 data (ultra-relativistic saturation)
  • --quick: Quick test mode (50 samples/point instead of 500)
  • --workers N: Number of parallel workers

Figure descriptions

Figure File Description
1 fig1_orbit_classification.pdf Orbit classification in $(E_0, L_z)$ space
2 fig2_ensemble_statistics.pdf Penrose success rate vs spin
3 fig3_thrust_comparison.pdf Single-impulse vs continuous thrust
4 fig4_spin_dependence.pdf Spin dependence of extraction window
5 fig5_thrust_sensitivity.pdf Velocity phase transition at $v_e \approx 0.91c$
6 fig6_ultrarel_saturation.pdf Efficiency saturation as $v_e \to c$

Numerical Configuration

Recommended solver settings for Kerr geodesics:

from scipy.integrate import solve_ivp

solution = solve_ivp(
    geodesic_rhs,
    t_span=(0, tau_max),
    y0=initial_state,
    method='DOP853',      # 8th-order Dormand-Prince
    rtol=1e-10,
    atol=1e-12,
)

Initial conditions: $r_0 = 15M$, escape radius: $50M$


References

  1. R. Penrose and R. M. Floyd, Nature Phys. Sci. 229, 177 (1971). doi:10.1038/physci229177a0

  2. R. M. Wald, Astrophys. J. 191, 231 (1974). doi:10.1086/152959

  3. S. Chandrasekhar, The Mathematical Theory of Black Holes (Oxford University Press, 1983).

About

Penrose Energy Extraction Simulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published