FunKit
is a Mathematica package for all tasks related to the derivation of functional equations in Quantum Field Theory (QFT).
The Idea of FunKit
is to be a one-stop solution to this end, starting with the definition of the QFT and truncation prescriptions, and ending with either the analytical equations, or automatically generated code to solve them numerically.
If you use the package for your research, please cite the corresponding publication:
@article{Sattler:2025FunKit,
author = "Sattler, Franz R.",
title = "{FunKit}",
year = "2026",
howpublished = "{\url{https://github.com/satfra/FunKit}}",
}
After you have installed the package, you can open a new notebook and call
Needs["FunKit`"]
to load the package. To get started, the first command you may want to use is
FInfo[]
or more specifically,
FInfo["FEDeriK"]
which will give you an overview of how to use the package.
For example, you may want to have the general expression for the flow of a two-point function from the Wetterich equation:
fields = <|"Commuting"->{Phi[p]}, "Grassmann"->{}|>;
SetGlobalSetup[<|"FieldSpace"->fields|>];
TakeDerivatives[WetterichEquation, {Phi[i1], Phi[i2]}]//FPrint;
Which will produce the output
To learn how to compute more complicated systems, you may want to see some typical examples on how to use FunKit
to deal with common QFTs of interest.
You will find some showcases inside the examples/
folder:
-
examples/ScalarTheory
shows the derivation of DSEs and fRG flows in an$O(N)$ theory. -
examples/Yang-Mills
derives the functional equations for an$SU(N)$ gauge theory. -
examples/Yukawa
does the same for a mixed fermion-boson theory.
To install the FunKit
package in Mathematica, simply open a new notebook or kernel and download the installation file:
Import["https://raw.githubusercontent.com/satfra/FunKit/main/FunKitInstaller.m"]
The installer will automatically download the package and all basis definition files and their pre-built cache.
You can also use the CMake integration if your project uses FunKit
as a dependency. In that case, you can install the package directly from your CMakeLists.txt
:
include(FetchContent)
FetchContent_Declare(
FunKit
GIT_REPOSITORY "https://github.com/satfra/FunKit"
GIT_TAG "main"
)
FetchContent_MakeAvailable(FunKit)
Alternatively, grab FunKit
directly from the console:
$ git clone https://github.com/satfra/FunKit.git
$ mkdir FunKit/build
$ cd FunKit/build
$ cmake ..
$ make install
To run the test suite, you can either run
$ make test
from the build directory (if you installed via CMake), or run the tests directly from a Mathematica notebook or kernel:
Get["FunKit`"]
FTest[]
To the end of deriving flow equations, other useful software already exists, in particular
FunKit
depends on, and builds upon
to perform traces over group indices in the derived functional equations,
to handle tensor bases and projections.
These two packages are automatically installed when you import FunKit
for the first time in a Mathematica notebook or session.