autoeft


Nameautoeft JSON
Version 1.0.0 PyPI version JSON
download
home_page
SummaryAutomated operator construction for effective field theories.
upload_time2023-09-28 08:19:58
maintainer
docs_urlNone
author
requires_python>=3.8
license
keywords basis eft hep operators physics qft
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AutoEFT

![AutoEFT](https://gitlab.com/auto_eft/autoeft/-/raw/1c98f5fa83a94f3f36220248564a5a3079ed0146/template/logo/png/logo_300.png?raw=true "AutoEFT")

Automated operator construction for effective field theories.

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)](https://github.com/charliermarsh/ruff)
[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI - Version](https://img.shields.io/pypi/v/autoeft)](https://pypi.org/project/autoeft/)
[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/autoeft)](https://anaconda.org/conda-forge/autoeft)

## Installation
AutoEFT is available on the [Python Package Index (PyPI)](https://pypi.org/) and the [conda-forge](https://conda-forge.org/) channel.

### Requirements
- [Python](https://www.python.org/) >= 3.8
- [SageMath](https://www.sagemath.org/) >= 9.3
- [FORM](https://www.nikhef.nl/~form/) >= 4.3

### Installing AutoEFT from PyPI
To install AutoEFT using `pip`, an already installed and running version of SageMath is required (see the [Sage Installation Guide](https://doc.sagemath.org/html/en/installation/index.html) and [Alternative Installation using PyPI](https://github.com/sagemath/sage/blob/develop/README.md#alternative-installation-using-pypi)).

To install *autoeft* and its dependencies, run:
```shell
sage -pip install autoeft
```

On *macOS* using [Homebrew](https://brew.sh/), it may be necessary to precede this statement by `PYTHONEXECUTABLE=</path/to/sage>` with the proper path to the SageMath executable inserted.
In addition, it may be necessary to add the path to SageMath’s executables to the `$PATH` environment variable.

### Installing AutoEFT from conda-forge
To install *autoeft* and its dependencies, run:
- with [conda](https://conda.io/):
```shell
conda install autoeft -c conda-forge
```

- with [mamba](https://github.com/mamba-org/mamba):
```shell
mamba install autoeft
```

### Building AutoEFT from Source Code
To build the distribution packages, run:
```shell
git clone https://gitlab.com/auto_eft/autoeft.git autoeft
cd autoeft
python -m build
```

## Usage
Verify the installation by running:
```shell
autoeft --help
```

### Model Files
The *model file* defines the symmetry groups and field content of a low-energy theory in the [YAML](https://yaml.org/) format.
To produce a sample *model file*, run:
```shell
autoeft sample-model > sm.yml
```

To define a custom *model file*, it is recommended to produce a sample file using the `sample-model` sub-command and modify it according to the desired theory.

### Basis Construction
Operator bases are constructed using the `construct` (alias `c`) sub-command.
To show the help message, run:
```shell
autoeft construct --help
```

*autoeft* needs to access `form` during the construction. If the *FORM* executable is not on the system `PATH`, the environment variable `AUTOEFT_PATH` can be set to specify a different path (multiple paths are separated by `:`).

To construct an operator basis for a low-energy theory, pass a valid *model file* and *mass dimension* to the command.
For example, to construct the dimension 6 SMEFT operator basis, run:
```shell
autoeft construct sm.yml 6
# ...
# Constructing operator basis for SMEFT @ d=6
# ...
```
This will create the output directory `efts/sm-eft/6/` in the current working directory, containing the file `stats.yml` and directory `basis/`.
A different output directory can be passed using the `--output` argument.

The file `stats.yml` summarizes the number of *families*, *types*, *terms*, and *operators* of a constructed basis.

The `basis/` directory contains the model (`model.json`) used to construct the basis and operator files in subdirectories of the form `<N>/<family>/<type>.yml`.

### Loading Operators
Once a basis is constructed, the operator files can be processed further.
If you want to work with the operators inside SageMath, *autoeft* provides functionality to load the basis:
```py
from pathlib import Path

from autoeft.io.basis import BasisFile

basis_path = Path("efts/sm-eft/6/basis")
basis_file = BasisFile(basis_path)
model = basis_file.get_model()
basis = basis_file.get_basis()

print(model)
# SMEFT: Standard Model Effective Field Theory

LQQQ = basis[{"LL": 1, "QL": 3}]
print(LQQQ)
# LL (1) QL(3)

print(LQQQ.n_terms , LQQQ.n_operators , sep=" & ")
# 3 & 57
```

## Authors
- Robert V. Harlander (RWTH Aachen University)
- Magnus C. Schaaf (RWTH Aachen University)

## Cite
If you use AutoEFT in your project, please refer to:
- <!DOCTYPE html> <html> <body> <p><b> <a href="https://inspirehep.net/literature/2658915"> Standard model effective field theory up to mass dimension 12 </a> </b></p>  <p><a href="https://inspirehep.net/authors/1006678">R.V. Harlander</a> (<a href="https://inspirehep.net/institutions/910724">RWTH Aachen U.</a>), <a href="https://inspirehep.net/authors/2658916">T. Kempkens</a> (<a href="https://inspirehep.net/institutions/910724">RWTH Aachen U.</a>), <a href="https://inspirehep.net/authors/2658917">M.C. Schaaf</a> (<a href="https://inspirehep.net/institutions/910724">RWTH Aachen U.</a>)</p>  <p> e-Print: <a href="https://arxiv.org/abs/2305.06832"> 2305.06832 </a>[hep-ph]</p> <p> DOI: <a href="https://doi.org/10.1103/PhysRevD.108.055020"> 10.1103/PhysRevD.108.055020 </a>(publication) </p> <p> Published in:<span> Phys.Rev.D 108 (2023) 5, 055020</span></p> <br> </body> </html>
- <!DOCTYPE html> <html> <body> <p><b> <a href="https://inspirehep.net/literature/2703514"> AutoEFT: Automated Operator Construction for Effective Field Theories </a> </b></p>  <p><a href="https://inspirehep.net/authors/1006678">Robert V. Harlander</a> (<a href="https://inspirehep.net/institutions/910724">RWTH Aachen U.</a>), <a href="https://inspirehep.net/authors/2658917">Magnus C. Schaaf</a> (<a href="https://inspirehep.net/institutions/910724">RWTH Aachen U.</a>)</p>  <p> e-Print: <a href="https://arxiv.org/abs/2309.15783"> 2309.15783 </a>[hep-ph]</p>   <br> </body> </html>
---

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "autoeft",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "\"Magnus C. Schaaf\" <magnus.schaaf@rwth-aachen.de>",
    "keywords": "basis,eft,hep,operators,physics,qft",
    "author": "",
    "author_email": "\"Robert V. Harlander\" <harlander@physik.rwth-aachen.de>, \"Magnus C. Schaaf\" <magnus.schaaf@rwth-aachen.de>",
    "download_url": "https://files.pythonhosted.org/packages/0e/ff/11ec0ed7ee16543f40e971dc34e20f9160471305c4aff1b4c19e6d37db05/autoeft-1.0.0.tar.gz",
    "platform": null,
    "description": "# AutoEFT\n\n![AutoEFT](https://gitlab.com/auto_eft/autoeft/-/raw/1c98f5fa83a94f3f36220248564a5a3079ed0146/template/logo/png/logo_300.png?raw=true \"AutoEFT\")\n\nAutomated operator construction for effective field theories.\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)](https://github.com/charliermarsh/ruff)\n[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PyPI - Version](https://img.shields.io/pypi/v/autoeft)](https://pypi.org/project/autoeft/)\n[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/autoeft)](https://anaconda.org/conda-forge/autoeft)\n\n## Installation\nAutoEFT is available on the [Python Package Index (PyPI)](https://pypi.org/) and the [conda-forge](https://conda-forge.org/) channel.\n\n### Requirements\n- [Python](https://www.python.org/) >= 3.8\n- [SageMath](https://www.sagemath.org/) >= 9.3\n- [FORM](https://www.nikhef.nl/~form/) >= 4.3\n\n### Installing AutoEFT from PyPI\nTo install AutoEFT using `pip`, an already installed and running version of SageMath is required (see the [Sage Installation Guide](https://doc.sagemath.org/html/en/installation/index.html) and [Alternative Installation using PyPI](https://github.com/sagemath/sage/blob/develop/README.md#alternative-installation-using-pypi)).\n\nTo install *autoeft* and its dependencies, run:\n```shell\nsage -pip install autoeft\n```\n\nOn *macOS* using [Homebrew](https://brew.sh/), it may be necessary to precede this statement by `PYTHONEXECUTABLE=</path/to/sage>` with the proper path to the SageMath executable inserted.\nIn addition, it may be necessary to add the path to SageMath\u2019s executables to the `$PATH` environment variable.\n\n### Installing AutoEFT from conda-forge\nTo install *autoeft* and its dependencies, run:\n- with [conda](https://conda.io/):\n```shell\nconda install autoeft -c conda-forge\n```\n\n- with [mamba](https://github.com/mamba-org/mamba):\n```shell\nmamba install autoeft\n```\n\n### Building AutoEFT from Source Code\nTo build the distribution packages, run:\n```shell\ngit clone https://gitlab.com/auto_eft/autoeft.git autoeft\ncd autoeft\npython -m build\n```\n\n## Usage\nVerify the installation by running:\n```shell\nautoeft --help\n```\n\n### Model Files\nThe *model file* defines the symmetry groups and field content of a low-energy theory in the [YAML](https://yaml.org/) format.\nTo produce a sample *model file*, run:\n```shell\nautoeft sample-model > sm.yml\n```\n\nTo define a custom *model file*, it is recommended to produce a sample file using the `sample-model` sub-command and modify it according to the desired theory.\n\n### Basis Construction\nOperator bases are constructed using the `construct` (alias `c`) sub-command.\nTo show the help message, run:\n```shell\nautoeft construct --help\n```\n\n*autoeft* needs to access `form` during the construction. If the *FORM* executable is not on the system `PATH`, the environment variable `AUTOEFT_PATH` can be set to specify a different path (multiple paths are separated by `:`).\n\nTo construct an operator basis for a low-energy theory, pass a valid *model file* and *mass dimension* to the command.\nFor example, to construct the dimension 6 SMEFT operator basis, run:\n```shell\nautoeft construct sm.yml 6\n# ...\n# Constructing operator basis for SMEFT @ d=6\n# ...\n```\nThis will create the output directory `efts/sm-eft/6/` in the current working directory, containing the file `stats.yml` and directory `basis/`.\nA different output directory can be passed using the `--output` argument.\n\nThe file `stats.yml` summarizes the number of *families*, *types*, *terms*, and *operators* of a constructed basis.\n\nThe `basis/` directory contains the model (`model.json`) used to construct the basis and operator files in subdirectories of the form `<N>/<family>/<type>.yml`.\n\n### Loading Operators\nOnce a basis is constructed, the operator files can be processed further.\nIf you want to work with the operators inside SageMath, *autoeft* provides functionality to load the basis:\n```py\nfrom pathlib import Path\n\nfrom autoeft.io.basis import BasisFile\n\nbasis_path = Path(\"efts/sm-eft/6/basis\")\nbasis_file = BasisFile(basis_path)\nmodel = basis_file.get_model()\nbasis = basis_file.get_basis()\n\nprint(model)\n# SMEFT: Standard Model Effective Field Theory\n\nLQQQ = basis[{\"LL\": 1, \"QL\": 3}]\nprint(LQQQ)\n# LL (1) QL(3)\n\nprint(LQQQ.n_terms , LQQQ.n_operators , sep=\" & \")\n# 3 & 57\n```\n\n## Authors\n- Robert V. Harlander (RWTH Aachen University)\n- Magnus C. Schaaf (RWTH Aachen University)\n\n## Cite\nIf you use AutoEFT in your project, please refer to:\n- <!DOCTYPE html> <html> <body> <p><b> <a href=\"https://inspirehep.net/literature/2658915\"> Standard model effective field theory up to mass dimension 12 </a> </b></p>  <p><a href=\"https://inspirehep.net/authors/1006678\">R.V. Harlander</a> (<a href=\"https://inspirehep.net/institutions/910724\">RWTH Aachen U.</a>), <a href=\"https://inspirehep.net/authors/2658916\">T. Kempkens</a> (<a href=\"https://inspirehep.net/institutions/910724\">RWTH Aachen U.</a>), <a href=\"https://inspirehep.net/authors/2658917\">M.C. Schaaf</a> (<a href=\"https://inspirehep.net/institutions/910724\">RWTH Aachen U.</a>)</p>  <p> e-Print: <a href=\"https://arxiv.org/abs/2305.06832\"> 2305.06832 </a>[hep-ph]</p> <p> DOI: <a href=\"https://doi.org/10.1103/PhysRevD.108.055020\"> 10.1103/PhysRevD.108.055020 </a>(publication) </p> <p> Published in:<span> Phys.Rev.D 108 (2023) 5, 055020</span></p> <br> </body> </html>\n- <!DOCTYPE html> <html> <body> <p><b> <a href=\"https://inspirehep.net/literature/2703514\"> AutoEFT: Automated Operator Construction for Effective Field Theories </a> </b></p>  <p><a href=\"https://inspirehep.net/authors/1006678\">Robert V. Harlander</a> (<a href=\"https://inspirehep.net/institutions/910724\">RWTH Aachen U.</a>), <a href=\"https://inspirehep.net/authors/2658917\">Magnus C. Schaaf</a> (<a href=\"https://inspirehep.net/institutions/910724\">RWTH Aachen U.</a>)</p>  <p> e-Print: <a href=\"https://arxiv.org/abs/2309.15783\"> 2309.15783 </a>[hep-ph]</p>   <br> </body> </html>\n---\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Automated operator construction for effective field theories.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://gitlab.com/auto_eft/autoeft"
    },
    "split_keywords": [
        "basis",
        "eft",
        "hep",
        "operators",
        "physics",
        "qft"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f6408cc2a4ca7e01b77489f3ec7c6ca342ed546c154e420205ea34066e23556",
                "md5": "d33c680c25ae9be1e3dc3a16a88689ac",
                "sha256": "b2934248a55253d65f72173e16adc4a0e4a36f10a6140e315e3d7bbf622ddb2c"
            },
            "downloads": -1,
            "filename": "autoeft-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d33c680c25ae9be1e3dc3a16a88689ac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 247030,
            "upload_time": "2023-09-28T08:19:54",
            "upload_time_iso_8601": "2023-09-28T08:19:54.743933Z",
            "url": "https://files.pythonhosted.org/packages/8f/64/08cc2a4ca7e01b77489f3ec7c6ca342ed546c154e420205ea34066e23556/autoeft-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0eff11ec0ed7ee16543f40e971dc34e20f9160471305c4aff1b4c19e6d37db05",
                "md5": "b03d6d71d6e086ab48f02c86452ef2ef",
                "sha256": "f8d0f861dbe2f8b09533a96f5812028e2aab750d6ba2112a14d0f8b75009be55"
            },
            "downloads": -1,
            "filename": "autoeft-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b03d6d71d6e086ab48f02c86452ef2ef",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 486155,
            "upload_time": "2023-09-28T08:19:58",
            "upload_time_iso_8601": "2023-09-28T08:19:58.014833Z",
            "url": "https://files.pythonhosted.org/packages/0e/ff/11ec0ed7ee16543f40e971dc34e20f9160471305c4aff1b4c19e6d37db05/autoeft-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-28 08:19:58",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "auto_eft",
    "gitlab_project": "autoeft",
    "lcname": "autoeft"
}
        
Elapsed time: 0.26218s