pybhpt 0.9.4__cp38-cp38-macosx_14_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pybhpt might be problematic. Click here for more details.
- cybhpt_full.cpython-38-darwin.so +0 -0
- pybhpt/.dylibs/libgsl.28.dylib +0 -0
- pybhpt/.dylibs/libgslcblas.0.dylib +0 -0
- pybhpt/__init__.py +0 -0
- pybhpt/flux.py +124 -0
- pybhpt/geo.py +407 -0
- pybhpt/hertz.py +402 -0
- pybhpt/metric.py +327 -0
- pybhpt/radial.py +381 -0
- pybhpt/redshift.py +20 -0
- pybhpt/swsh.py +347 -0
- pybhpt/teuk.py +245 -0
- pybhpt-0.9.4.dist-info/METADATA +135 -0
- pybhpt-0.9.4.dist-info/RECORD +16 -0
- pybhpt-0.9.4.dist-info/WHEEL +5 -0
- pybhpt-0.9.4.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: pybhpt
|
|
3
|
+
Version: 0.9.4
|
|
4
|
+
Summary: Black Hole Perturbation Theory and Self-Force Algorithms in Python
|
|
5
|
+
Author-Email: Zach Nasipak <znasipak@gmail.com>
|
|
6
|
+
License: GPL
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Cython
|
|
9
|
+
Classifier: Programming Language :: C++
|
|
10
|
+
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
|
|
11
|
+
Classifier: Natural Language :: English
|
|
12
|
+
Project-URL: Github, https://github.com/znasipak/pybhpt
|
|
13
|
+
Project-URL: Bug Tracker, https://github.com/znasipak/pybhpt/issues
|
|
14
|
+
Requires-Python: >=3.8
|
|
15
|
+
Requires-Dist: numpy<=2.2
|
|
16
|
+
Requires-Dist: scipy
|
|
17
|
+
Provides-Extra: testing
|
|
18
|
+
Requires-Dist: pytest; extra == "testing"
|
|
19
|
+
Requires-Dist: pytest-cov; extra == "testing"
|
|
20
|
+
Provides-Extra: dev
|
|
21
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
22
|
+
Requires-Dist: jupyter; extra == "dev"
|
|
23
|
+
Requires-Dist: ipython; extra == "dev"
|
|
24
|
+
Requires-Dist: ipykernel; extra == "dev"
|
|
25
|
+
Provides-Extra: extended
|
|
26
|
+
Requires-Dist: pandas; extra == "extended"
|
|
27
|
+
Requires-Dist: spherical; extra == "extended"
|
|
28
|
+
Requires-Dist: tqdm; extra == "extended"
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
|
|
31
|
+
# pybhpt
|
|
32
|
+
|
|
33
|
+
A python package for solving problems in black hole perturbation theory
|
|
34
|
+
|
|
35
|
+
`pybhpt` is a collection of numerical tools for analyzing perturbations of Kerr spacetime, particularly the self-forces and metric-perturbations experienced by small bodies moving in a Kerr background. Subpackages include:
|
|
36
|
+
|
|
37
|
+
- `pybhpt.geodesic`: a module that generates bound timelike geodesics in Kerr spacetime
|
|
38
|
+
- `pybhpt.radial`: a module that calculates homogeneous solutions of the radial Teukolsky equation
|
|
39
|
+
- `pybhpt.swsh`: a module that constructs the spin-weighted spheroidal harmonics
|
|
40
|
+
- `pybhpt.teuk`: a module that evaluates the inhomogeneous solutions (Teukolsky amplitudes) of the radial Teukolsky equation due to a point-particle on a bound timelike Kerr geodesic
|
|
41
|
+
- `pybhpt.flux`: a module that produces the gravitational wave fluxes sourced by a point-particle on a generic bound timelike Kerr geodesic
|
|
42
|
+
- `pybhpt.hertz`: a module that solves for the Hertz potentials for the CCK and AAB metric reconstruction procedures
|
|
43
|
+
- `pybhpt.metric`: a module that produces the coefficients needed to reconstruct the metric from the Hertz potentials
|
|
44
|
+
- `pybhpt.redshift`: a module that computes the generalized Detweiler redshift invariant in a variety of gauges
|
|
45
|
+
|
|
46
|
+
## Quick Installation
|
|
47
|
+
|
|
48
|
+
Tagged releases of `pybhpt` are available as wheel packages for macOS and 64-bit Linux on [PyPI](https://pypi.org/project/matplotlib/). Install using `pip`:
|
|
49
|
+
```
|
|
50
|
+
python3 -m pip install pybhpt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Developer Installation
|
|
54
|
+
|
|
55
|
+
`pybhpt` relies on several dependencies to install and run, namely a C/C++ compiler (e.g., `g++`), `gsl`, `boost`, `Cython`, `numpy`, `scipy`, and `python >= 3.8`. To reduce package conflicts and ensure that the proper dependencies are installed, we recommend using [conda](https://docs.conda.io/en/latest/) (paricularly through [Miniforge](https://github.com/conda-forge/miniforge)) and its virtual environments.
|
|
56
|
+
|
|
57
|
+
To create a conda environment `pybhpt-env` with just the necessary dependencies use `environment.yml`:
|
|
58
|
+
```
|
|
59
|
+
conda env create -f environment.yml
|
|
60
|
+
conda activate pybhpt-env
|
|
61
|
+
```
|
|
62
|
+
For an environment with the extended recommended software dependencies, one can replace `environment.yml` with `environment-extended.yml` or follow the extended `pip` install instructions below.
|
|
63
|
+
|
|
64
|
+
Next clone the `pybhpt` repository from GitHub:
|
|
65
|
+
```
|
|
66
|
+
git clone https://github.com/znasipak/pybhpt.git
|
|
67
|
+
cd pybhpt
|
|
68
|
+
```
|
|
69
|
+
The `boost` repository is included as a submodule under `extern/boost`. To activate the submodule:
|
|
70
|
+
```
|
|
71
|
+
git submodule update --init --recursive extern/boost
|
|
72
|
+
```
|
|
73
|
+
To include the Boost headers in the compilation path:
|
|
74
|
+
```
|
|
75
|
+
cd extern/boost
|
|
76
|
+
chmod +x bootstrap.sh
|
|
77
|
+
./bootstrap.sh
|
|
78
|
+
./b2 headers
|
|
79
|
+
```
|
|
80
|
+
Finally, we recommend installing the package via `pip`:
|
|
81
|
+
```
|
|
82
|
+
pip install .
|
|
83
|
+
```
|
|
84
|
+
or to get the basic development dependencies:
|
|
85
|
+
```
|
|
86
|
+
pip install '.[dev, testing]'
|
|
87
|
+
```
|
|
88
|
+
To get all recommended software:
|
|
89
|
+
```
|
|
90
|
+
pip install '.[dev, testing, extended]'
|
|
91
|
+
```
|
|
92
|
+
To ensure the package installed properly, run the unit tests via `pytest`:
|
|
93
|
+
```
|
|
94
|
+
pytest .
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Conda Environments with Jupyter
|
|
98
|
+
|
|
99
|
+
To run the code in a Jupyter notebook, we recommend `pip` installing the following dependencies:
|
|
100
|
+
```
|
|
101
|
+
pip install ipykernel matplotlib
|
|
102
|
+
```
|
|
103
|
+
These dependencies are already included in `environment-extended.yml` or in the optional `pip install` dependencies. To make the environment accessible within Jupyter:
|
|
104
|
+
```
|
|
105
|
+
python -m ipykernel install --user --name=pybhpt-env
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Uninstalling
|
|
109
|
+
|
|
110
|
+
If the package is installed using `pip`, then one can easily uninstall the package by executing
|
|
111
|
+
```
|
|
112
|
+
pip uninstall pybhpt
|
|
113
|
+
```
|
|
114
|
+
Developers may also need to remove the directories `build/` and `pybhpt.egg.info/` from the main repository.
|
|
115
|
+
|
|
116
|
+
## Troubleshooting compiling from source
|
|
117
|
+
|
|
118
|
+
If there are problems compiling `pybhpt` from source, it may be because `cmake` cannot identify the correct compiler. To fix this issue, one can try to explicitly download the necessary compiler into their conda environment.
|
|
119
|
+
|
|
120
|
+
To include the necessary compiler on macOS Intel:
|
|
121
|
+
```
|
|
122
|
+
conda install clang_osx-64 clangxx_osx-64
|
|
123
|
+
```
|
|
124
|
+
To include the necessary compiler on macOS arm/silicon:
|
|
125
|
+
```
|
|
126
|
+
conda install clang_osx-arm64 clangxx_osx-arm64
|
|
127
|
+
```
|
|
128
|
+
To include the necessary compiler on Linux:
|
|
129
|
+
```
|
|
130
|
+
conda install gcc_linux-64 gxx_linux-64
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Authors
|
|
134
|
+
|
|
135
|
+
Zachary Nasipak
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
cybhpt_full.cpython-38-darwin.so,sha256=fL8CCr6JTXuj9TCnOD7Cyy2go7sM2C4kutEXte19XSg,1784880
|
|
2
|
+
pybhpt/geo.py,sha256=QyiwlXF0cIYSpkV7wC9-ITd2bqIumvXiIt2_uNlhJMc,12237
|
|
3
|
+
pybhpt/redshift.py,sha256=ozDDbkv34FQ_Op3FotmHJ-J5Vfy2oF4_Ri1HRujnzAY,791
|
|
4
|
+
pybhpt/hertz.py,sha256=9atjscxbR7eszsY6BuJvcy0PqlgMFwYI23kUIn4mUwc,13565
|
|
5
|
+
pybhpt/radial.py,sha256=2H3rH4XczAVCbKveHmPO2wt3w8ApPZYWCAwkwnxPnps,13995
|
|
6
|
+
pybhpt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
pybhpt/swsh.py,sha256=WjtpHNZ6c7RVxuml1I6_cEu8D6cb4hD6aiHZVwD7AeA,10462
|
|
8
|
+
pybhpt/metric.py,sha256=y8ip24rFto7m7rZb0-fuYMrYUmbCzInaWQVYJRI3m3o,11971
|
|
9
|
+
pybhpt/teuk.py,sha256=w3tcidkaOGeywZPqjggacYhxaFxgsxXdMlJ2C7TwdMQ,8220
|
|
10
|
+
pybhpt/flux.py,sha256=2ahStjbsswsWMNPfDiOlQIrzulJZrhaqoDENC0bCLE4,4299
|
|
11
|
+
pybhpt/.dylibs/libgsl.28.dylib,sha256=57NeYzXRx_Fvr8ChQggQOBqCgqn5xXxWyFIiGMm3-_M,2241424
|
|
12
|
+
pybhpt/.dylibs/libgslcblas.0.dylib,sha256=FuXGrQKlT1nkAMaRH6O1B_CnRFFX4pqVcK36KX_-56A,239760
|
|
13
|
+
pybhpt-0.9.4.dist-info/RECORD,,
|
|
14
|
+
pybhpt-0.9.4.dist-info/WHEEL,sha256=NR48bMiVINOK5RoUvmfb-l9oVk-Sz9oMtH3mccOQJIY,112
|
|
15
|
+
pybhpt-0.9.4.dist-info/METADATA,sha256=EMPVuX-dje_Xt0axnmQHVeuax7rV66-dPzXO0_92ehc,5386
|
|
16
|
+
pybhpt-0.9.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|