https://github.com/auroradysis/kerrp2p

KerrP2P is a software designed for forward ray tracing in Kerr spacetime. It is specifically tailored to efficiently calculate multiple null geodesics between designated "source" and "observer" points, locate apparent positions of the corresponding images, and quantify their shapes.

https://github.com/auroradysis/kerrp2p

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, aps.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary

Keywords

kerr ray-tracing raytracing
Last synced: 6 months ago · JSON representation

Repository

KerrP2P is a software designed for forward ray tracing in Kerr spacetime. It is specifically tailored to efficiently calculate multiple null geodesics between designated "source" and "observer" points, locate apparent positions of the corresponding images, and quantify their shapes.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 4
  • Open Issues: 0
  • Releases: 0
Topics
kerr ray-tracing raytracing
Created over 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

KerrP2P (Kerr Point-to-Point)

KerrP2P is a software designed for forward ray tracing in Kerr spacetime. It is specifically tailored to efficiently calculate multiple null geodesics between designated "source" and "observer" points, locate apparent positions of the corresponding images, and quantify their shapes. Detailed information can be found in the paper Forward Ray Tracing and Hot Spots in Kerr Spacetime by Lihang Zhou, Zhen Zhong, Yifan Chen, and Vitor Cardoso.

Using Jacobi elliptic functions to express the solutions to the geodesic equations based on Gralla and Lupsasca 2019, this software consists of two tools.

  1. A Python/C++ package that computes null geodesics and thoroughly explores the parameter space to identify multiple images. Tutorials for it are presented in the folder examples:

    • tutorial_float64_sweep.ipynb: geodesic calculation and parameter space sweep in double precision
    • tutorial_float128or256.ipynb: geodesic calculation in quad/oct precision
    • cpp_tutorial_basic.cpp: geodesic calculation
    • cpp_tutorial_sweep.cpp: parameter space sweep
  2. A Mathematica code: examples/tutorial_geodesic_and_image.nb. It also includes functions for geodesic calculation and can be utilized to visualize geodesics, image positions, and image shapes.

Paper License

Features

  • Forward ray tracing in Kerr spacetime: this involves calculating multiple null geodesics that connects a given source to an observer
  • Support for arbitrary precision arithmetic
  • Python bindings for easy to use interface
  • Support for multiple platforms: Linux, macOS, and Windows

Installation

Prerequisites

Before installing KerrP2P, ensure that you have the following dependencies installed on your system:

  • Boost (with filesystem components)
  • Catch2 (optional, for testing)
  • fmt
  • GMP (optional)
  • MPFR (optional)
  • MPC (optional)
  • Eigen
  • Intel oneAPI TBB
  • Python (optional)
  • pybind11 (optional)

Linux

On Linux, you can use Spack to install the dependencies:

yaml spack: specs: - boost+filesystem - catch2 - fmt - gmp - mpfr - mpc - eigen - intel-oneapi-tbb - python - py-pybind11 view: true concretizer: unify: true

macOS

On macOS, you can use Homebrew to install the dependencies:

bash brew install boost catch2 fmt gmp mpfr mpc eigen tbb python pybind11

Windows

On Windows, you can use vcpkg to install the dependencies:

bash vcpkg.exe install boost catch2 fmt eigen3 tbb python3 pybind11

Usage

To use KerrP2P, follow these steps:

  1. Clone the repository:

bash git clone https://github.com/AuroraDysis/KerrP2P.git

  1. Build the project using CMake:

bash cd KerrP2P mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make

  1. Remember to copy the generated .so file to your working directory to enable the package's usage in Python/C++, while the Mathematica code can be used without this.

Contributing

Contributions to KerrP2P are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.

License

KerrP2P is released under the MIT License. See the LICENSE file for more details.

Citation

If you use KerrP2P in your research, please cite the following paper:

bibtex @article{Zhou:2024dbc, author = "Zhou, Lihang and Zhong, Zhen and Chen, Yifan and Cardoso, Vitor", title = "{Forward ray tracing and hot spots in Kerr spacetime}", eprint = "2408.16049", archivePrefix = "arXiv", primaryClass = "gr-qc", doi = "10.1103/PhysRevD.111.064075", journal = "Phys. Rev. D", volume = "111", number = "6", pages = "064075", year = "2025" }

Owner

  • Name: Zhen Zhong
  • Login: AuroraDysis
  • Kind: user
  • Location: Lisbon, Portugal
  • Company: Instituto Superior Técnico

Theoretical Physics

GitHub Events

Total
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 5
  • Push event: 11
  • Fork event: 2
Last Year
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 5
  • Push event: 11
  • Fork event: 2