The FormCalc Visitor Center
FormCalc is a Mathematica package for the calculation of tree-level
and one-loop Feynman diagrams. It reads diagrams generated with FeynArts and returns the results in a
way well suited for further numerical and analytical evaluation.
FormCalc can in fact write out a complete Fortran (or C) subroutine to
compute the squared matrix element for a given process. In addition to
a comprehensive manual, several demo
calculations are included in the FormCalc distribution, which show how
the programs are used.
What it does:
The following simplifications are performed by FormCalc:
- indices are contracted as far as possible,
- fermion traces are evaluated,
- open fermion chains are simplified using the Dirac equation,
- colour structures are simplified using the SU(N) algebra,
- the tensor reduction is done,
- local terms (the remnants of divergent integrals) are added,
- the results are partially factored,
- abbreviations are introduced.
The output is in general a linear combination of loop integrals with
prefactors that contain model parameters, kinematic variables, and
abbreviations introduced by FormCalc. Such abbreviations are introduced
for spinor chains, scalar products of vectors, and epsilon tensors
contracted with vectors. A term in the output could for instance look
The automatic introduction of abbreviations by FormCalc is a very
important feature which can drastically reduce the size of an amplitude,
particularly so because the abbreviations are nested in three levels.
Here is an example:
In calculations with non-scalar external particles where such objects are
ubiquitous, code produced from the FormCalc output (say, in Fortran) can
be significantly faster than without the abbreviations. For further
evaluating spinor chains, FormCalc provides a function which calculates
helicity matrix elements.
FormCalc can treat ultraviolet divergences either with dimensional
regularization or with constrained differential renormalization. At the
one-loop level, the latter technique is equivalent to dimensional
reduction. This means that FormCalc can process also supersymmetric
The most common way to proceed with the analytical output is to convert
it to a Fortran program. FormCalc has a sophisticated Fortran code
generator built in which can produce a subroutine to calculate the squared
matrix element fully automatically. This subroutine has to be linked with
driver programs which supply the necessary input parameters. Included in
the FormCalc package are driver programs for computing cross-sections of
1 → 2, 2 → 2, and 2 → 3 processes. It is written in a
very modular way so that it is fairly easy to adapt parts of it for
How it works:
Internally, FormCalc performs most of the hard work (e.g. working out
fermionic traces) in FORM, by
Jos Vermaseren. The concept is rather straightforward: the symbolic
expressions of the diagrams are prepared in an input file for FORM, then
FORM is run, and finally the results are read back into Mathematica. The
interfacing is completely shielded from the user and is handled internally
by the FormCalc functions. The following diagram shows schematically how
FormCalc interacts with FORM:
FormCalc combines the speed of FORM with the powerful instruction set
of Mathematica and the latter greatly facilitates further processing of
the results. Owing to FORM's speed, FormCalc can process, for example,
the 1000-odd one-loop diagrams of elastic W-W scattering in the Standard
Model in about a minute on an ordinary PC.
FormCalc has been published in Comput. Phys. Commun. 118 (1999) 153
Subsequently implemented techniques and features are described in
(parallelization and fermion chains),
(features in version 4),
(features in version 4.1),
(features in version 5),
(features in version 5.3),
(features in version 6),
(features in version 7),
(features in version 7.5),
(implementation of the complex MSSM),
(features in version 8),
(features in version 8.4).
The automatic installation script gets you started quickly and
Major improvements for Cygwin and Mac.
- Download the shell script FeynInstall [6 kB, MD5: 2272adf5f151124de8516acbf4c21931].
(Use the right mouse button and "Save Link As...")
- Make it executable with chmod 755 FeynInstall.
- Run it in the directory in which you want the packages installed:
- The script separately prompts you for the installation of
FeynArts, FormCalc, and LoopTools.
- Finally, it asks whether to include FeynArts and FormCalc in
You can download the following files:
- FormCalc-9.5.tar.gz [30.7 MB, MD5: eef852dbcb493451bb1af899dad9d834]
(last update: 25 Apr 17)
- IMPORTANT CHANGE:
HelicityME, ColourME, WeylME, SquaredME now take arguments
in the order "Mtree, Mloop".
This is now (finally) the same as with WriteSquaredME but
different than before.
- Abbr and Subexpr now return lists with 'patternized'
l.h.s. so that they can also be used for replacing inside
- New functions Creep, ExprHeads, ExprParts.
- Enhancements to ApplyUnitarity, Keep.
- Internally restructured HelicityME, PolarizedSum.
- Fixed plenty of bugs (see ChangeLog).
- Fixed left-over debug stuff in tarball of 13 Apr.
- FormCalc-9.4.tar.gz [25.87 MB, MD5: 3b4624946443fcfdcf036f7b60c46a83]
(last update: 9 Jun 16)
- FormCalc-9.3.tar.gz [23.08 MB, MD5: 0f7a7924953ca1c9b0280dcaaabb8d77]
(last update: 22 Apr 16)
- FormCalc-9.2.tar.gz [23.49 MB, MD5: fed363c031ecbaaca1f7788ab4f809cd]
(last update: 28 Jan 16)
- FormCalc-9.1.tar.gz [23.46 MB, MD5: d1f7342388e31a811a5656bab6c521ad]
(last update: 4 Nov 15)
- FormCalc-9.0.tar.gz [31.09 MB, MD5: 2c2976aafd5a44280fc3f8aac59864d4]
(last update: 5 Sep 15)
- FormCalc-8.5.tar.gz [23 MB, MD5: c8f83bc4a2f31abab46823278eb58480]
(last update: 29 Jun 15)
- FormCalc-8.4.tar.gz [22.85 MB, MD5: e3dc53f3b7a85832343dcdea2eaf9479]
(last update: 28 Apr 15)
- FormCalc-8.3.tar.gz [25.16 MB, MD5: cc48693d20ca20862aec8f18f69dab8b]
(last update: 14 Nov 13)
- FormCalc-8.2.tar.gz [15.57 MB, MD5: 8d860c7ba1167361e85d57748fea7e81]
(last update: 9 Sep 13)
- FormCalc-8.1.tar.gz [15.58 MB, MD5: a90271524750ee8a396e2c1ea3efa413]
(last update: 27 Mar 13)
- FormCalc-8.0.tar.gz [9.09 MB, MD5: 3de8a39e653aeb6482ef203440abe204]
(last update: 4 Mar 13)
- FormCalc-7.5.tar.gz [8.09 MB, MD5: 11668f54d0a61e68fb92ff3642dbe0a9]
(last update: 9 Oct 12)
- FormCalc-7.4.tar.gz [9.07 MB, MD5: 3c544f3337d29a6753cedf357e0adc56]
(last update: 6 Jun 12)
- FormCalc-7.3.tar.gz [4.14 MB, MD5: 3d5c1da2dad8f8af1ef99aa8517ce591]
(last update: 12 Jan 12)
- FormCalc-7.2.tar.gz [4.12 MB, MD5: 7c0ea2b6ae54c13cc181ea8b1f393bbe]
(last update: 25 Aug 11)
- FormCalc-7.1.tar.gz [4.13 MB, MD5: a4b4a1a9e37e84d5760a2fb744deaeda]
(last update: 4 Aug 11)
- FormCalc-7.0.tar.gz [4.11 MB, MD5: 3a9eb5958564e23afd7289bc3367b6a3]
(last update: 12 May 11)
- FormCalc-6.2.tar.gz [4.19 MB, MD5: 5e8a875e2b4e24563c9054e05f6c8fbd]
(last update: 11 Aug 10)
- FormCalc-6.1.tar.gz [4.19 MB, MD5: 658e7315f0ed74b6ac8d449be129352a]
(last update: 20 Jul 10)
- FormCalc-6.0.tar.gz [2.71 MB, MD5: eec033053b07ef49bb618a1cf69b7b7d]
(last update: 12 Jun 09)
- FormCalc-5.4.tar.gz [2.73 MB, MD5: 6e856892f8196f972441602d6683c2d9]
(last update: 29 May 08)
- FormCalc-5.3.tar.gz [2.72 MB, MD5: b1297fa06f0682be60cc8a204a38ba6d]
(last update: 28 Feb 08)
- FormCalc-5.2.tar.gz [451 kB, MD5: a18202a94dc64c2a26d6c925ba6eb527]
(last update: 27 Feb 07)
- FormCalc-5.1.tar.gz [445 kB, MD5: ec21d7ae52f6b2f243fb5da9ad4fe652]
(last update: 24 Jan 07)
- FormCalc-5.0.tar.gz [441 kB, MD5: 400198d1f2fcd8b54f2e0a5643016228]
(last update: 15 May 06)
- FormCalc-4.1.tar.gz [422 kB, MD5: 69b55b90b4a0cd53447ed3c674000fb2]
(last update: 15 May 06)
- FormCalc-4.0.tar.gz [403 kB, MD5: fc6e71204f1281d2376adb0b5f6db993]
(last update: 25 Jan 05)
- FormCalc-3.2.tar.gz [278 kB, MD5: 9cea73e8dd96e06c26bf3348413360b7]
(last update: 31 Mar 03)
- FormCalc-3.1.tar.gz [230 kB, MD5: fc431755c4825948e297e4cf64c3117f]
(last update: 4 Mar 02)
- FormCalc-3.0.tar.gz [180 kB, MD5: 66b2551cee8acd53cd7abb97475ad6e5]
(last update: 21 Jun 01)
- FormCalc-2.0.tar.gz [219 kB, MD5: 599b8ab4658e09be8ead1c5f54fea444]
(last update: 27 Jun 00)
- FormCalc-1.5.tar.gz [262 kB, MD5: fa99ce0e3584d2ed46640bed86513251]
(last update: 3 Feb 00)
- FormCalc-1.4.tar.gz [260 kB, MD5: 3013504159ab6226eb116e95ad7cfae3]
(last update: 7 Jul 99)
- FormCalc-1.2.tar.gz [155 kB, MD5: 1e742f91f0611073d8d70d0dc511e4d7]
(last update: 11 Oct 98)
To run FormCalc, you need Mathematica 5 or above, FORM 3.2 or above
(versions after 5.2 have a copy of FORM included), and gcc, the GNU C
Installation notes for the impatient:
- unpack the archive FormCalc-n.m.tar.gz,
- change into the directory FormCalc-n.m,
- run ./compile to compile the C programs needed by FormCalc.
Ubuntu users: Do not (= DO NOT) install fort77.
Install gfortran. Also install tcsh and g++.
To link the Fortran code generated by FormCalc, you also need
the LoopTools library.
More detailed instructions are given in the manual which is contained
as a PDF file in the FormCalc distribution. You can also
obtain the manual here.
Problems with FormCalc?
See the troubleshooting page before
submitting a bug report.
The program FormGet is a spin-off from FormCalc. It contains just the
code for reading FORM output files into Mathematica, but does not perform
any simplifications like ReadForm does.
More specifically, FormGet does two things: it translates the FORM syntax
into Mathematica's InputForm, and it wraps a function called "bracket"
around terms which are collected as a result of FORM's bracket command,
i.e. FormGet preserves the structure of the FORM output.
The companion tool FortranGet reads the expressions in a Fortran 77
program into Mathematica.
Download FormGet.tm [8 kB, MD5: 3ba3bf07d02ec7b8559cc4ca515e764d]
Download FortranGet.tm [7 kB, MD5: 51940a872fcd66922af990c684962a7f]
Installation instructions and usage information is given in the
comments at the beginning of the source code.
Thanks for looking in.
Please send bug reports, suggestions, fan mail, etc. to
Note: FormCalc is a registered trademark of Schörghuber
Spezialtüren ;-) who have kindly allowed me to keep the name of the
program. If you came here looking for special doors, please go to their
This site and the programs offered here are not commercial.
FormCalc is and will stay an open-source package and free of charge.
If you want to use FormCalc in a commercial application, make sure
you understand the
GNU Lesser General Public License under which FormCalc is
distributed. FormCalc is being developed at the
Max-Planck-Institute for Physics
Last update: 26 Apr 17