#physics #python-packages #back-end #inflation #cosmology

已撤回 inflatox

inflatox Python 包的 Rust 后端

2 个不稳定版本

0.2.0 2023年9月12日
0.1.0 2023年6月27日

#45#python-packages

EUPL-1.2

9.5MB
508 代码行

inflatox_banner

Inflatox - Python 中的多场膨胀一致性条件

License: EUPL v1.2 Crates.io PyPi CI

Inflatox 提供了一个框架来实施多场膨胀模型的高性能数值一致性条件。例如,直接构建到包中的 Anguelova & Lazaroiu (2023)[^1] 的慢滚快速转场两场膨胀势一致性条件的实现。

特性

  • sympy 提供的符号求解器,用于具有非规范动量项的膨胀模型赫斯矩阵的组件。
  • 转换器(具有与平台原生 C 编译器的绑定),将 sympy 表达式转换为可执行编译代码
  • 内置的多线程 rust 模块,用于高效计算一致性条件,可直接与 numpy 和 python 交互。
  • 无需手动读取、编写或编译任何 rustC 代码(所有这些都是在幕后自动完成的)

安装和依赖关系

如果您想使用 inflatox 包,而不想向其中添加自己的本地代码,安装 inflatox Python 包就足够了。

  • 可以通过运行 pip install inflatox 命令来安装 inflatox Python 包。

如果您想用您自己的本地 Rust 代码扩展 inflatox,可以通过扩展 inflatox Rust crate 来实现。

  • 可以通过将其添加到您的 Cargo.toml 作为依赖项来将 inflatox Rust crate 添加到您的 Rust 项目中
[dependencies]
inflatox = "0.1"

示例程序

有关更多示例,请参阅 notebooks 文件夹

以下代码示例显示了如何使用 inflatox 计算两场超膨胀模型的势和赫斯矩阵的组件。

#import inflatox
import inflatox
import sympy as sp
import numpy as np
sp.init_printing()

#define model
φ, θ, L, m, φ0 = sp.symbols('φ θ L m φ0')
fields = [φ, θ]

V = (1/2*m**2*(φ-φ0)**2).nsimplify()
g = [
  [1, 0],
  [0, L**2 * sp.sinh(φ/L)**2]
]

display(g, V)

#symbolic calculation
calc = inflatox.SymbolicCalculation.new_from_list(fields, g, V)
hesse = calc.execute([[0,1]])

#run the compiler
out = inflatox.Compiler(hesse).compile()

#evaluate the compiled potential and Hesse matrix
from inflatox.consistency_conditions import AnguelovaLazaroiuCondition
anguelova = AnguelovaLazaroiuCondition(out)

args = np.array([1.0, 1.0, 1.0])
x = np.array([2.0, 2.0])
print(anguelova.calc_V(x, args))
print(anguelova.calc_H(x, args))

许可证

License: EUPL v1.2

Inflatox 明确不在 Rust 生态系统常见的 Apache/MIT 许可证下进行许可。相反,它根据 欧洲联盟公共许可证 v1.2 的条款进行许可。.

Inflatox 是一个科学项目,并拥抱开放科学和自由开源软件的价值观。封闭和付费科学软件套件阻碍了新技术和研究方法的开发,并将大量必要的公共资金从研究人员转移到大出版和软件公司。

请参阅LICENSE.md文件,其中包含欧盟22种官方语言的EUPL文本,以及LICENSE-EN.txt文件的英文版本许可证。

参考文献

[^1]: Anguelova, L.,Lazaroiu, C. (2023). 快速通货膨胀的动力学一致性条件。《宇宙学和天体粒子物理杂志》,2023年5月(20)。https://doi.org/10.1088/1475-7516/2023/ 05/020

依赖关系

~7–12MB
~154K SLoC