{"id":17169336,"url":"https://github.com/smups/inflatox","last_synced_at":"2025-04-13T16:03:33.593Z","repository":{"id":159764548,"uuid":"634834010","full_name":"smups/inflatox","owner":"smups","description":"Framework for implementing high-performance numerical consistency conditions for multifield inflation models.","archived":false,"fork":false,"pushed_at":"2024-10-20T20:21:17.000Z","size":51167,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-21T00:18:09.199Z","etag":null,"topics":["cosmology","inflation","physics","python","rust","science"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smups.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-EN.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-01T10:20:08.000Z","updated_at":"2024-09-19T19:51:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"c8382ec2-1c67-4802-ba83-94631b3700d8","html_url":"https://github.com/smups/inflatox","commit_stats":{"total_commits":295,"total_committers":2,"mean_commits":147.5,"dds":0.006779661016949157,"last_synced_commit":"02c3b84f5a9ece4817be42202e9602e785efa5e5"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smups%2Finflatox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smups%2Finflatox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smups%2Finflatox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smups%2Finflatox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smups","download_url":"https://codeload.github.com/smups/inflatox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240100514,"owners_count":19747683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cosmology","inflation","physics","python","rust","science"],"created_at":"2024-10-14T23:25:52.425Z","updated_at":"2025-02-23T16:33:16.848Z","avatar_url":"https://github.com/smups.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![inflatox_banner](https://raw.githubusercontent.com/smups/inflatox/dev/logos/banner.png)\n# Inflatox - multifield inflation consistency conditions in python\n[![License: EUPL v1.2](https://img.shields.io/badge/License-EUPLv1.2-blue.svg)](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12)\n[![arXiv](https://img.shields.io/badge/arXiv-2405.11628-b31b1b.svg)](https://arxiv.org/abs/2405.11628)\n[![PyPi](https://img.shields.io/pypi/v/inflatox)](https://pypi.org/project/inflatox)\n[![CI](https://github.com/smups/inflatox/actions/workflows/CI.yml/badge.svg)](https://github.com/smups/inflatox/actions/workflows/CI.yml)\n\nInflatox provides utilities to compute slow-roll parameters and turn-rates for\ntwo-field inflation models, based on the consistency condition from Generalised consistency condition\nfirst presented in Anguelova \u0026 Lazaroiu (2023)[^1] and later generalised for the purposes of this package\nin Wolters, Iarygina \u0026 Achúcarro (2024)[^3] [arXiv:2405.11628](https://arxiv.org/abs/2405.11628).\nThe consistency conditions can be used in a parameter sweep of a two-field model to find\npossible inflation trajectories.\n\n\u003e [!NOTE]\n\u003e If this software has proven useful to your research, please consider citing\nJCAP07(2024)079[^3]\n\n## Features\n- symbolic solver for components of the Hesse matrix of an inflationary model\n  with non-canonical kinetic terms, powered by [`sympy`](https://www.sympy.org).\n- transpiler to transform `sympy` expressions into executable compiled (`C`) code.\n- (experimental) support for special function transpilation using the GSL\n- built-in multithreaded `rust` module for high-performance calculations of\n  consistency conditions that interfaces directly with `numpy` and python.\n- utilities for performing parameter sweeps.\n- extendability: inflatox' exposes a python interface to calculate any intermediate\n  quantity, which can be used to extend it with additional consistency conditions.\n- no need to read, write or compile any `rust` or `C` code manually\n  (this is all done automatically behind the scenes).\n- no system dependencies, everything needed to run the package can be automatically\n  installed by `pip`.\n\n## Installation and Dependencies\n\u003e [!IMPORTANT]\n\u003e Inflatox requires at least python version `3.8`.\n\nThe latest version of inflatox can be installed using pip:\n```console\npip install inflatox\n```\nInflatox can be updated using:\n```console\npip install --upgrade inflatox\n```\n\n## Example programme\nThe following code example shows how `inflatox` can be used to calculate the\npotential and components of the Hesse matrix for a two-field orbital inflation model.\n```python\nimport numpy as np\nimport sympy as sp\nimport inflatox\n\n# define model\nr, θ, m = sp.symbols(\"r θ m\")\nfields = [r, θ]\n\nV = (1 / 2 * m**2 * (θ**2 -2/(3 * r**2))).nsimplify()\ng = [[0.5, 0], [0, 0.5 * r**2]]\n\n# symbolic calculation\ncalc = inflatox.SymbolicCalculation.new(fields, g, V)\nhesse = calc.execute()\n\n# run the compiler\nout = inflatox.Compiler(hesse).compile()\nout.print_sym_lookup_table()\n\n# evaluate the consistency condtion\nfrom inflatox.consistency_conditions import GeneralisedAL\nanguelova = GeneralisedAL(out)\n\nextent = [0.0, 2.5, 0.0, np.pi]\nparams = np.array([1]) # set m = 1\nconsistency_condition, epsilon_V, epsilon_H, eta_H, delta, omega = (\n    anguelova.complete_analysis(params, *extent)\n)\n```\n\n## Special function support\nInflatox features (experimental) support for transpiling special functions from `scipy` to C using\nthe GSL library. The GSL (GNU Scientific Library) is not packaged together with inflatox due to its\nconflicting license. Inflatox merely generates code that calls GSL functions, you must still provide\nthe headers and compiled shared libraries (`libgsl` and `libgslcblas`) yourself.\n\nIf you intend on using this feature, make sure that:\n- The GSL is installed and can be found\n- GSLCBLAS is installed and can be found\n- The GSL headers are installed and can be found\n\nCheck out the documentation of the `Compiler` class for a list of currently supported special\nfunctions, and the `docs.md` file for more technical details.\nIf you are experiencing any issues with the gsl feature (or if a special function you need is missing),\nplease [open an issue on github](https://github.com/smups/inflatox/issues) or contact the authors.\n\n## Supported Architectures\nThe combinations of OS and CPU architecture listed down below\nhave pre-compiled binary distributions of `inflatox` available\nvia `PiPy`. If your arch is not listed here, you will have to\n[compile `inflatox` manually](/BUILD.md).\n- Intel/AMD x86/i686 (32 bit)\n  - linux/gnu (glibc \u003e= 2.17, kernel \u003e= 3.2)\n- Intel/AMD x86_64/amd64 (64 bit)\n  - linux/gnu (glibc \u003e= 2.17, kernel \u003e= 3.2)\n  - windows 10+\n  - macOS 10.12+ / Sierra+\n- ARM aarch64 (64 bit)\n  - linux/gnu (glibc \u003e= 2.17, kernel \u003e= 4.1)\n  - macOS 11.0+ / Big Sur+\n\u003e [!TIP]\n\u003e Apple silicon M-series chips are supported (aarch64)*\n\n## License\n[![License: EUPL v1.2](https://img.shields.io/badge/License-EUPLv1.2-blue.svg)](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12)\n\u003e[!CAUTION]\n\u003e Inflatox is explicitly not licensed under the dual\n\u003e Apache/MIT license common to the Rust ecosystem. Instead it is licensed under\n\u003e the terms of the [European Union Public License v1.2](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12).\n\nInflatox is a science project and embraces the values of open science and free\nand open software. Closed and paid scientific software suites hinder the\ndevelopment of new technologies and research methods, as well as diverting much-\nneeded public funds away from researchers to large publishing and software\ncompanies.\n\nSee the [LICENSE.md](../LICENSE.md) file for the EUPL text in all 22 official\nlanguages of the EU, and [LICENSE-EN.txt](../LICENSE-EN.txt) for a plain text\nEnglish version of the license.\n\n## References and footnotes\n[^1]: Anguelova, L., \u0026 Lazaroiu, C. (2023). Dynamical consistency conditions for\n  rapid-turn inflation. *Journal of Cosmology and Astroparticle Physics*,\n  May 2023(20). https://doi.org/10.1088/1475-7516/2023/ 05/020\n[^2]: 32-bit windows is no longer considered a tier-1 target by the rust project, and unsupported\n  by some of Inflatox's dependencies.\n[^3]: Wolters, R, Iarygina \u0026 O. Achúcarro, A (2024). Generalised conditions for\n  rapid-turn inflation. *Journal of Cosmology and Astroparticle Physics*, July 2024(79).\n  https://doi.org/10.1088/1475-7516/2024/07/079\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmups%2Finflatox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmups%2Finflatox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmups%2Finflatox/lists"}