Skip to content

thibautbar/fire7

Repository files navigation

README

FIRE stands for Feynman Integral REduction

Articles

Installation

  • git clone https://gitlab.srcc.msu.ru/feynmanintegrals/fire.git
  • cd fire/FIRE7
  • ./configure
  • Now read the options provided by ./configure and reconfigure with desired options, for example
  • ./configure --enable_zlib --enable_snappy --enable_tcmalloc --enable_zstd
  • make dep
  • make

On Mac Os X you need the brew-installed llvm

  • brew install automake
  • brew install llvm
  • brew install libomp

There are problems with llvm16 w-functions (not related to our project), so provide a path to llvm17, for example PATH=/usr/local/Cellar/llvm/17.0.6_1/bin:$PATH3/bin:$PATH)

Important notice! We ship LiteRed 1.8.3 with FIRE. It is a separate package created by R.N.Lee, and in case it is used, a paper on LiteRed should be cited together with FIRE. FIRE is supposed to work with LiteRed 2, but it should be downloaded separately.

In case of changes in ./configure options it is recommended to have a clean rebuild

  • make cleandep
  • make clean
  • make dep
  • make

FIRE is known to work at different Linux distributions and also under Windows with the new WSL2. Building under Mac OS X requires some tricks, however the docker approach can be used (see below). FIRE works under Windows inside the WSL, version 2 (Windows subsystem for Linux). Just get WSL with an Ubuntu installation.

Docker

An alternative installation method is to use docker.

The FIRE image can be obtained from Docker Hub with

  • docker pull asmirnov80/fire:latest

A version or some commit hashes can be specified, for example,

  • docker pull asmirnov80/fire:7.0

Now one can launch FIRE from the container like

  • docker run --rm asmirnov80/fire /app/FIRE7/bin/FIRE7 --help

As Docker containers are sandboxed, any host folder needs to be explicitly mounted as a volume to be accessed by FIRE inside the container. For example, the following command mounts the current directory as the host folder in the container and makes it the working directory when launching FIRE:

  • docker run --rm -v $PWD:/host -w /host fire /app/FIRE7/bin/FIRE7 --help

You can also run from an arbitrary data folder (containing the config file, integral file etc., possibly in sub-folders):

  • docker run --rm -v <PATH_TO_YOUR_FOLDER_WITH_DATA>:/data fire /app/FIRE7/bin/FIRE7 -c /data/<CONFIG_FILE_NAME>

For advanced users who want to re-build the Docker image after local modification to the FIRE code, here are the instructions. First, make a new clean clone of FIRE, change directory to the outer fire folder and run

  • docker build -t fire .

to build the image. Warning: trying to build a docker image within a folder where FIRE has been already built might lead to build errors or unexpected behavior. Each time this command is issued, the contents of the FIRE7 folder is copied into the container and rebuilt. Then the image can be run using the same commands as you would use with an image pulled from Docker Hub.

Usage

  • make test
  • Follow the instructions in the articles
  • There are some examples in the examples folder

Documentation

For usage, please refer to FIRE6 and FIRE7 papers. A preliminary single-file manual can be found at FIRE7/manual/fire_manual.qmd in the Quarto markdown format. You can compile it to HTML and PDF formats by running make inside FIRE7/manual, provided that you have installed quarto, latex, and pandoc.

For development documentation for FIRE, Doxygen is used. You need to have doxygen installed to generate documentation.

To generate docs run

  • make doc

This will create html/ and latex/ subfolders in FIRE7/documentation/ html/ contains complete docs, latex/ contains latex sources.

To generate .pdf from latex sources, run

  • make doc_pdf

You will need to have appropriate tools installed, like pdflatex. This will generate refman.pdf and place it directly in FIRE7/documentation/

To view docs after creation, either

  • open FIRE7/documentation/html/index.html in your Web Browser
  • open FIRE7/documentation/refman.pdf (after generating it)

To delete documentation run

  • make cleandoc

More information

  • For the package structure see FIRE7/README
  • For examples listing see FIRE7/examples/README
  • For information about documentation see FIRE7/documentation/README

External packages

  • Most of the packages that FIRE uses are open-source, so they are included in the FIRE distribution
  • FIRE optionally uses the Fermat program by Robert Lewis for algebraic simplifications, though the open-source Flint backend is now the default and has overall better performance. Fermat is freeware but has some restrictions for organizations. Fermat is shipped in the FIRE package, however it is the user's responsibility to check whether their use of Fermat is legal. If one does not accept the Fermat license, they should not use the C++ version of FIRE with the --calc fermat option.
  • Suggested usage is together with LiteRed. Do not forget to include a reference to https://arxiv.org/abs/1310.1145 in this case.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors