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.
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
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
- Host: GitHub
- Owner: AuroraDysis
- License: mit
- Language: C++
- Default Branch: main
- Homepage: https://arxiv.org/abs/2408.16049
- Size: 2.87 MB
Statistics
- Stars: 7
- Watchers: 2
- Forks: 4
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
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.
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 precisiontutorial_float128or256.ipynb: geodesic calculation in quad/oct precisioncpp_tutorial_basic.cpp: geodesic calculationcpp_tutorial_sweep.cpp: parameter space sweep
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.
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:
- Clone the repository:
bash
git clone https://github.com/AuroraDysis/KerrP2P.git
- Build the project using CMake:
bash
cd KerrP2P
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
- Remember to copy the generated
.sofile 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
- Website: https://inspirehep.net/authors/1700348
- Repositories: 32
- Profile: https://github.com/AuroraDysis
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