Skip to content

Latest commit

 

History

History
215 lines (161 loc) · 8.26 KB

File metadata and controls

215 lines (161 loc) · 8.26 KB

BHCodex

Fingerprint Classification of Regular Black Hole Models via the Joint Exterior–Interior ISCO Invariant and Kerr–Hayward Precision Forecasts

DOI License: MIT Python 3.9+

Stephen Nagy — Independent Research, Cleveland, Ohio — 2026


What this is

BHCodex classifies regular black hole models through a jointly computed exterior–interior ISCO invariant fingerprint. For each spherically symmetric regular metric, it computes:

  • K_norm(u) — the ISCO orbital frequency normalized to the Schwarzschild baseline
  • C_norm(u) — the interior volume growth constant from the VIG framework, normalized to Schwarzschild

The joint curve (K_norm(u), C_norm(u)) is anchored at the shared Schwarzschild point (1,1) and traces a model-specific path as the regularization parameter u increases toward extremality. This is the fingerprint.

The framework also extends to rotating spacetimes via the Kerr–Hayward metric, computing the required observational precision σ_K(a*, u) needed to detect regularization at any spin and mass scale.


Key results

Result Value Layer
Fingerprint Slope Theorem α_n = −4ⁿ/(2n²−n+1), independent of coefficient c A
Hayward slope (n=4) −256/29 ≈ −8.828 A
Bardeen / Simpson–Visser slope (n=3) −4.000 (first-order equivalent) A
Dymnikova exterior signature K_norm = 1.000000 across full scanned range A (numerical)
Kerr–Hayward sensitivity amplification ~74× from a*=0 to a*=0.99 A
EHT current (5%) detection threshold a* ≳ 0.99, u ≳ 0.046 B
ngEHT (1%) detection threshold a* ≥ 0.90 B
LISA/EMRI (0.1%) detection threshold a* ≥ 0.50, u ≥ 0.007 at a*=0.99 B

Layer A = computed geometric results from metric functions.
Layer B = observational interpretation requiring instrument precision assignments.


Quickstart

git clone https://github.com/SNagy3/BHCodex.git
cd BHCodex
pip install -r requirements.txt

# === Full pipeline (ISCO + VIG fingerprint atlas) ===
# Works from repo root — uses package import for capital BHCodex/ folder
python -m BHCodex.bhcodex_run_all \
    --catalog Catalog/bhcodex_master_catalog.csv \
    --output results/bhcodex_v1 \
    --n 400

# === Kerr–Hayward atlas ===
python -m BHCodex.bhcodex_kerr_atlas \
    --catalog Catalog/bhcodex_master_catalog.csv \
    --output results/bhcodex_kerr \
    --n 200

# === Precision forecast surface ===
python -m BHCodex.bhcodex_precision_forecast \
    --atlas results/bhcodex_kerr/bhcodex_kerr_kerr_atlas.csv \
    --output results/bhcodex_kerr

Repository structure

BHCodex/
├── README.md
├── LICENSE
├── requirements.txt
├── CITATION.cff
│
├── BHcodex/                        # Core pipeline
│   ├── bhcodex_models.py           # Metric functions + MODELS registry
│   ├── bhcodex_build_atlas.py      # ISCO + VIG scanner, dual anchor gate
│   ├── bhcodex_compare.py          # Pairwise fingerprint separation
│   ├── bhcodex_project_catalog.py  # Catalog projection onto atlas
│   ├── bhcodex_run_all.py          # Full pipeline CLI
│   ├── bhcodex_kerr_atlas.py       # Kerr–Hayward exterior atlas
│   ├── bhcodex_kerr_residual.py    # u upper limits from catalog
│   └── bhcodex_precision_forecast.py  # σ_K required-precision surface
│
├── Catalog/                        # Data outputs
│   ├── bhcodex_master_catalog.csv  # 49-object cross-scale survey
│   ├── bhcodex_v1_atlas.csv        # 4-model fingerprint atlas (804 rows)
│   ├── bhcodex_v1_compare_pairs.csv
│   ├── bhcodex_v1_catalog_projection.csv
│   ├── bhcodex_v1_anomaly_log.csv
│   ├── bhcodex_v1_claim_ledger_stub.csv
│   ├── bhcodex_v1_manifest.csv
│   ├── bhcodex_kerr_kerr_atlas.csv # Kerr–Hayward atlas (707 rows, 7 spins)
│   ├── bhcodex_kerr_atlas.csv
│   ├── bhcodex_kerr_falsifiability.csv
│   ├── bhcodex_kerr_precision_surface.csv
│   └── bhcodex_kerr_u_constraints.csv
│
├── Figures/                        # All publication figures
│   ├── bhcodex_v1_fingerprint.png
│   ├── bhcodex_v1_both_invariants.png
│   ├── bhcodex_v1_compare_figure.png
│   ├── bhcodex_v1_catalog_figure.png
│   ├── bhcodex_kerr_K_vs_u.png
│   ├── bhcodex_kerr_K_vs_spin.png
│   ├── bhcodex_kerr_kerr_K_vs_u.png
│   ├── bhcodex_kerr_kerr_K_vs_spin.png
│   ├── bhcodex_kerr_spin_K_atlas.png
│   ├── bhcodex_kerr_precision_surface.png
│   ├── bhcodex_kerr_precision_crosssections.png
│   ├── bhcodex_kerr_falsifiability.png
│   └── bhcodex_kerr_u_constraints_figure.png
│
└── Paper/                          # Submission package
    ├── bhcodex_paper_final.tex     # PRD revtex4-2 source
    ├── bhcodex.bib                 # 17 BibTeX entries
    └── bhcodex_paper_final.pdf     # Compiled draft

The fingerprint diagram

The joint curve (K_norm(u), C_norm(u)) for all four models:

Fingerprint diagram

Hayward (n=4, slope ≈ −8.828) and Bardeen (n=3, slope = −4) are clearly separated. Bardeen and Simpson–Visser overlap at small u (identical first-order slope, different at O(u⁴)). Dymnikova traces a vertical segment — K_norm ≡ 1 across the full scanned range.

The precision surface

Required K_norm fractional precision to detect Kerr–Hayward regularization at 1σ:

Precision surface

Darker = easier to detect. Instrument horizon lines: EHT 5% (red), ngEHT 1% (blue dashed), LISA/EMRI 0.1% (green dotted).


Modules

bhcodex_models.py

Metric functions f(r,u) for Hayward, Bardeen, Dymnikova, and Simpson–Visser. The MODELS registry contains extremal parameters, slope theorem values, and plot styling for each model.

bhcodex_build_atlas.py

Scans each model over its physically allowed deformation range. Computes K_norm(u) via ISCO minimization and C_norm(u) via interior critical-point optimization. Implements the dual Schwarzschild anchor gate — halts if either invariant deviates from 1 at u=0 beyond tolerance.

bhcodex_compare.py

Pairwise fingerprint separation on a shared K_norm grid using PCHIP interpolation. Computes max|ΔC|, RMS ΔC, and signed area for each non-degenerate pair.

bhcodex_kerr_atlas.py

Kerr–Hayward exterior atlas over (u, a*) parameter space. Dual anchor gate verifies standard Kerr recovery at u=0 for all seven spin slices to < 3×10⁻⁸ relative error.

bhcodex_precision_forecast.py

Computes the required-precision surface σ_K^req(a*, u) = ΔK_norm(a*, u) / [N · K_norm(a*, 0)]. Generates the falsifiability table and three publication figures.


Dependencies

numpy>=1.24
scipy>=1.10
pandas>=2.0
matplotlib>=3.7

Citation

If you use BHCodex in your research, please cite:

@article{Nagy2026BHCodex,
  author  = {Nagy, Stephen},
  title   = {Fingerprint Classification of Regular Black Hole Models
             via the Joint Exterior--Interior {ISCO} Invariant
             and {Kerr--Hayward} Precision Forecasts},
  year    = {2026},

}

@misc{Nagy2026BHCodexSoftware,
  author       = {Nagy, Stephen},
  title        = {{BHCodex} v1.0: Fingerprint classification of
                  regular black hole models},
  year         = {2026},
  doi          = {10.5281/zenodo.19152410},
  url          = {https://github.com/SNagy3/BHCodex}
}

This work builds on:


License

MIT License. See LICENSE.


Contact

Stephen Nagy — Independent Researcher, Cleveland, Ohio
GitHub: @SNagy3