Installation#

AutoTherm requires Mathematica and Python 3. The Mathematica packages FeynRules, FeynArts and FormCalc are also required, see their respective webpages for installation instructions.

Extract the AutoTherm code, it will create an autotherm directory. We shall call $AutothermDir the absolute path to this folder on your system. On a mac, that can be /Users/myself/Codes/autotherm/ and on a linux system /home/myself/Codes/autotherm/.

It is recommended to create a virtual environment, so that all needed python packages will be installed within it. To proceed, execute in a shell in this folder

cd $AutothermDir
python3 -m venv .venv

Here $AutothermDir should be replaced by its actual value. The second command creates a virtual environment in the .venv subdirectory. You then need to activate it by executing

source .venv/bin/activate

This will now make your shell aware that anything python-related is now dealt with within the venv. To leave the venv you need the deactivate command. As long as the venv is active, the python and pip commands refer to the version of python used to create the virtual environment. Pip will install packages within it.

You can then proceed to compile and install the cython and python modules, as well as their dependencies, by executing

pip install .

You should now have everything needed to run this code. The next section illustrates how to set up a model.

Optional: parallelism with OpenMP#

The C integration routines using the cubature package included in the integrator/fallback/ subdirectory support parallelism with OpenMP. To compile with this feature, you need to run

export AUTOTHERM_ENABLE_OPENMP=true
pip install .

This should work out of the box on linux with openmp installed. On a mac, we recommend installing llvm and libomp with Homebrew and compiling with this brew-installed version of llvm through

export AUTOTHERM_ENABLE_OPENMP=true
CC=/opt/homebrew/opt/llvm/bin/clang pip install .

A brew-installed version of the original GNU gcc can also work in the same fashion.