#时间 #pyo3 #张量 #探测器 #几何 #向量化 #操作

bilby_rust

Bilby 的 Rust 实现,用于镜像 bilby-cython 中的功能,并使用 PyO3 进行特定领域几何操作

1 个不稳定版本

0.1.0 2024 年 8 月 21 日

#882科学

MIT 许可证

59KB
1K SLoC

bilby-rust

Rust 实现 Bilby 的特定领域几何操作,以镜像 bilby-cython 中的功能,并使用 PyO3

用法

要编译项目和安装 Python 绑定,可以使用 maturin

$ maturin develop

这将安装一个未优化的版本,如果您想进行基准测试,请确保使用以下命令安装:

$ maturin develop --release

在 MacOS 上,您可能需要安装额外的依赖项

rustup target add x86_64-apple-darwin
mamba install -c conda-forge clang

Python 代码可以直接在 Python 中使用

>>> from bilby_rust.time import greenwich_mean_sidereal_time
>>> greenwich_mean_sidereal_time(1e9)
26930.069103915423

API 与 bilby-cython 不完全匹配

  • 由于目前不支持使用 numpy ufuncs 通过 PyO3 编写,因此 greenwich_mean_sidereal_time 的向量化版本实现为 bilby_rust.time.greenwich_mean_sidereal_time_vectorized
  • 此外,还实现了处理时间和频率相关的天线响应函数的功能,例如使用 bilby_rust.geometry.{time_dependent_polarization_tensor,time_delay_from_geocenter_vectorized,frequency_dependent_detector_tensor}。这来自 @jacobgolomb 为 bilby-cython实现
  • Roulet+ 包含的基于探测器的参考帧约定为 bilby_rust.geometry.zenith_azimuth_to_theta_phi_optimized
  • 使用 bilby_rust.geometry.{antenna_response,antenna_response_all_model,antenna_response_tensor_modes} 计算天线响应,将检测器图案投影到极化张量上。

依赖关系

~7–12MB
~146K SLoC