Inflatox provides a framework to implement high-performance numerical consistency conditions for multifield inflation models. As an example, an implementation of the potential consistency condition for slow-roll rapid-turn two-field inflation from Anguelova & Lazaroiu (2023)[^1] is built right into the package.
sympy
.sympy
expressions into executable compiled coderust
module for high-performance calculations of consistency conditions that interfaces directly with numpy
and python.rust
or C
code manually (this is all done automatically behind the scenes)Make sure to have a C compiler (and linker) installed on your computer when using
inflatox
.
If you want to use the inflatox
package and do not want to add your own native code to it, installing the inflatox
python package is sufficient.
- The inflatox
python package can be installed by running the pip install inflatox
command.
If you would like to extend inflatox
with your own native rust code, this can be achieved by extending the inflatox
rust crate:
- The inflatox
rust crate can added to your rust project by adding it to your Cargo.toml
as a dependency like so:
toml
[dependencies]
inflatox = "0.1"
for more examples, see the
notebooks
folder
The following code example shows how inflatox
can be used to calculate the potential and components of the Hesse matrix for a two-field hyperinflation model.
```python
import inflatox import sympy as sp import numpy as np sp.init_printing()
φ, θ, L, m, φ0 = sp.symbols('φ θ L m φ0') fields = [φ, θ]
V = (1/2m2(φ-φ0)2).nsimplify() g = [ [1, 0], [0, L2 * sp.sinh(φ/L)2] ]
display(g, V)
calc = inflatox.SymbolicCalculation.newfromlist(fields, g, V) hesse = calc.execute([[0,1]])
out = inflatox.Compiler(hesse).compile()
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.calcV(x, args)) print(anguelova.calcH(x, args)) ```
All crates in the Rustronomy ecosystem are licensed under the EUPLv1.2 (or higher) license.
Rustronomy-watershed is explicitly not licensed under the dual Apache/MIT license common to the Rust ecosystem. Instead it is licensed under the terms of the European Union Public License v1.2.
Rustronomy is a science project and embraces the values of open science and free and open software. Closed and paid scientific software suites hinder the development of new technologies and research methods, as well as diverting much- needed public funds away from researchers to large publishing and software companies.
See the LICENSE.md file for the EUPL text in all 22 official languages of the EU, and LICENSE-EN.txt for a plain text English version of the license.