FeynHelpers is a collection of interfaces that allow you to use other HEP-related tools from your FeynCalc session.
FeynHelpers is designed as an add-on for FeynCalc. To use it you need at least FeynCalc 9.2 and Mathematica 8.
Tools that are currently supported are
-
Run the following instruction in a Kernel or Notebook session of Mathematica
Import["https://raw.githubusercontent.com/FeynCalc/feynhelpers/master/install.m"] InstallFeynHelpers[]
If the above code fails with
URLFetch::invhttp: SSL connect error
(e.g. on Mathematica 9 under OS X), tryImportString[URLFetch["https://raw.githubusercontent.com/FeynCalc/feynhelpers/master/install.m"]] InstallFeynHelpers[]
-
The automatic installer can also install Package-X and FIRE for you. It will offer you this possiblity at the end of the installation process
-
Create a directory FeynHelpers inside
FileNameJoin[{$UserBaseDirectory, "Applications", "FeynCalc", "AddOns"}]
and put the source code there.
-
Install Package-X and FIRE packages. It should be possible to load Package-X via
<<X`
and FIRE via
<< FIRE5`
If you like the bleeding edge and you are already using the development version of FeynCalc, you can also install the development version of FeynHelpers
Import["https://raw.githubusercontent.com/FeynCalc/feynhelpers/master/install.m"]
InstallFeynHelpers[InstallFeynHelpersDevelopmentVersion->True]
The development version features an interface to the CAS Fermat by R. Lewis. At the moment
the main function of this interface is FerSolve
, which employs Fermat to solve systems of linear equations. Notice that to run FerSolve
you need to download the Fermat binary and put ferl6
(Linux) or ferm6
(macOS) to FileNameJoin[{$FeynHelpersDirectory, "ExternalTools", "Fermat"}]
.
Some examples for running FerSolve would be
FerSolve[{a x + y == 7, b x - y == 1}, {x, y}]
FerSolve[{2 x + y c == 2, 4 x == c}, {x, y}]
eqs = {M0 == (1 - f1 - f2 - f3 - f4 - f5 - f6 - f7 - f8 - f9 - f10 -
f11 - f12 - f13 - f14 - f15 - f16)*m0,
M1 == f1*m0 + (1 - f1 - f2 - f3 - f4 - f5 - f6 - f7 - f8 - f9 -
f10 - f11 - f12 - f13 - f14 - f15 - f16)*m1,
M2 == f1*m1 +
f2*m0 + (1 - f1 - f2 - f3 - f4 - f5 - f6 - f7 - f8 - f9 - f10 -
f11 - f12 - f13 - f14 - f15 - f16)*m2,
M4 == f1*m3 + f2*m2 + f3*m1 + f4*m0,
M5 == f2*m3 + f3*m2 + f4*m1 + f5*m0,
M6 == f3*m3 + f4*m2 + f5*m1 + f6*m0,
M7 == f4*m3 + f5*m2 + f6*m1 + f7*m0,
M8 == f5*m3 + f6*m2 + f7*m1 + f8*m0,
M9 == f6*m3 + f7*m2 + f8*m1 + f9*m0,
M10 == f7*m3 + f8*m2 + f9*m1 + f10*m0,
M11 == f8*m3 + f9*m2 + f10*m1 + f11*m0,
M12 == f9*m3 + f10*m2 + f11*m1 + f12*m0,
M13 == f10*m3 + f11*m2 + f12*m1 + f13*m0,
M14 == f11*m3 + f12*m2 + f13*m1 + f14*m0,
M15 == f12*m3 + f13*m2 + f14*m1 + f15*m0,
M16 == f13*m3 + f14*m2 + f15*m1 + f16*m0};
vars = {f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
f15, f16}
FerSolve[eqs, vars]
FerSolve
can be also employed for calculating new tensor reduction with Tdec
. For example,
$LoadAddOns = {"FeynHelpers"};
<< FeynCalc`
Tdec[{{p1, mu1}, {p1, mu2}, {p1, mu3}, {p1, mu4}, {p2, mu5}, {p2,
mu6}}, {Q1, Q2}, Solve -> FerSolve, UseTIDL -> False,
FCVerbose -> 1]
The interface to QGRAF is still very unstable and full of bugs and missing features. Just to give a general idea of how it is supposed to work, here is a simple QED 2-loop example
SetDirectory[NotebookDirectory[]];
QGLoadInsertions[];
out = QGCreateAmp[2, {"El[p]"} -> {"El[p]"}, QGLoopMomentum -> l,
QGModel -> "QEDOneFlavor", QGShowOutput -> False]
QGConvertToFC[out[[1]], DiracChainJoin -> True]
QGPrepareDiagramsTeX[out[[2]], "dias.tex"]
(*or QGPrepareDiagramsTeX[out[[2]], "Dias", Split -> True] *)
For usage information see the accompanying paper arXiv:1611.06793 and the supplied examples.
If you use FeynHelpers in you work, please cite
- V. Shtabovenko, "FeynHelpers: Connecting FeynCalc to FIRE and Package-X", Comput. Phys. Commun., 218, 48-65, 2017, arXiv:1611.06793
Also don't forget to cite the authors of the tools that you are calling from FeynHelpers, which are
- The code of FeynHelpers is covered by the GNU General Public License 3.
- This does not apply to the packages for which FeynHelpers provides an interface to FeynCalc. For the licensing of those packages please check the informations provided by the respective authors.