This document is a follow-up to a previous status report.
The goals of FeynCalc remain largely the same, but with a slight change of focus as will be detailed below.
Mathematica and FeynCalc provide a strong framework for working with quantum field theory phenomenology. The strengths of FeynCalc are: 1) It provides a standardized general notation. 2) It provides many built-in tools for doing algebraic manipulations. The implementation of these tools relies heavily on the Mathematica symbolic manipulation and pattern matching capabilities. 3) Full use is made of the Mathematica typesetting capabilities.
The drawback is that Mathematica is an interpreted language and thus not very fast. Of course, with the higher speed of computers, this has improved dramatically over the years and will continue to improve. But FeynCalc will nevertheless remain uncompetitive compared to other solutions using compiled languages.
Originally, in 1991, FeynCalc was written for doing one-loop calculation in the electro-weak part of the standard model. Later, in the mid-90′s, its author, Rolf Mertig, changed the focus to QCD and OPE one- and two-loop calculation.
In the last few years I have performed calculations in the effective theory ChPT, and for this purpose added the module PHI as well as implementing support of FeynArts in FeynCalc. Thus, recent new features are largely in the area of effective theories.
I see the future of development of FeynCalc as a further cleaning up and refining of the framework along this line. This should allow: 1) Facilitating implementing new theories (that is, facilitate the steps involved in going from a lagrangian to an amplitude); and, of course, implementing such theories. 2) Provide reference knowledge of particle phenomenology. 3) Improve the pedagogical use of FeynCalc. E.g. in teaching quantum field theory.
The FeynCalc project is ambitious in scope. Indeed, fulfilling the goals set is a task which would require many man-years. Still, already in its present stat FeynCalc is a useful tool, that has over time been used by hundreds of high energy physicists*.
The additions and changes in the code described below refer to the code in the CVS repository. A new release is in preparation.
Since the previous status report, various ChPT models have been implemented (from lagrangians to amplitudes); moreover, full support for FeynArts through the module PHI has been completed. This allows using the Feynman rules and the Feynman diagram machinery that come with FeynArts to calculate Standard Model one-loop amplitudes; PHI also provides a systematic way of generating and storing Feynman rules compatible with FeynArts.
Some restructuring has been done in order to make maintenance and bug hunting easier. Many functions have been pulled out of “FeynCalc.m” and put into one of the subdirectories. A new subdirectory, “fcloops”, has been added and functions from “FeynCalc.m” and from other subdirectories have been put there. The objective is that “FeynCalc.m” should contain only definitions that need no modification in the future; something like API definitions. E.g. the machinery for declaration of objects and loading of subpackages, basic objects like QuantumField, LorentzIndex, etc. and definitions of objects used in many contexts that have no functional properties, like certain function-options. The subdirectories then group together definitions of functions in logical groups.
The clearer structure of both the code and the documentation should make it easier to do calculations in both the Standard Model and in new models and/or effective theories. The hope is that people will do this and commit their calculations back to the community.
Some work has been put into writing documentation and making it accessible through the Mathematica help browser. Still, many of the objects in the subpackage QCD (OPE) remain without thorough documentation and in particular without detailed example calculations. Providing this would need an interested QCD phenomenologist.
In principle the items from the to do list of the previous status report remain open. Some progress has been made (see above), but many holes still remain to be filled in order to fulfill the goals stated above. In this respect I view it as important to clean up the code to make it more maintainable, to write a thorough user’s guide and to provide more example calculations. All these tasks are in progress.