1. Installation¶
1.1. Obtain a Compiler¶
pySecDec works on Unix-like systems, specifically Linux and macOS. It requires a working c++ compiler and a Python 3 (>=3.8) installation.
On Linux systems, users can install compilers (we recommend the latest GCC or Clang compiler) and Python 3 using the package manager provided with their Linux distribution (usually one of : apk, apt-get, apt, yum).
On macOS systems, users can install a compiler via the App Store:
Download Xcode via the App Store
Open a terminal window and enter
xcode-select --install
then follow the prompts to install command line tools.
This procedure will make the clang compiler available on the system. Python 3 is shipped with macOS, you can check the version available on your system using python3 --version
. Later versions of Python can be installed on macOS using third-party package managers (e.g. the Homebrew package manager).
1.2. Download the Program and Install¶
pySecDec works under Python version 3.8 or newer on unix-like systems. The latest release can be installed from PyPI by first (optionally) upgrading pip:
$ python3 -m pip install --user 'pip>=20.1'
and then running:
$ python3 -m pip install --user --upgrade pySecDec
This command will install the prebuild version of pySecDec if it is available; if not, then the dependencies will be compiled from source (this might take a while). One can also force building from source like this:
$ python3 -m pip install --user --upgrade --no-binary :all: pySecDec
1.3. Drawing Feynman Diagrams with neato¶
The plot_diagram()
function draws a Feynman diagram using the command line tool neato.
It is automatically called when generating an integral library using the loop_package()
function with an integral of type LoopIntegralFromGraph
and will issue a warning if neato is not available.
The warning can be safely ignored if you are not interested in the drawing. Alternatively, you must manually install neato which is part of the graphviz package. It is available in many package repositories and at http://www.graphviz.org.
1.4. Additional Dependencies¶
pySecDec and the integration libraries it produces depend on multiple third-party non-Python packages, all of which are contained in pySecDecContrib and will be automatally built during the normal installation procedure. These packages are:
QMC (https://github.com/mppmu/qmc), used for the
Qmc
integrator.CUBA (http://www.feynarts.de/cuba/), used for
Vegas
,Suave
,Divonne
, andCuhre
integrators.GSL (http://www.gnu.org/software/gsl/), used for the
CQuad
integrator.FORM (http://www.nikhef.nl/~form/), used to optimize the integrands.
Nauty and Traces (http://pallini.di.uniroma1.it/), used by
pySecDec.make_package()
to find symmetries between sectors (if use_dreadnaut is set to True).Normaliz (https://www.normaliz.uni-osnabrueck.de), used by the
geometric decomposition
module.Catch (https://github.com/philsquared/Catch) used by SedDecUtil for unit testing.