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/ScalarTheoryshows the derivation of DSEs and fRG flows in an$O(N)$ theory. -
examples/Yang-Millsderives the functional equations for an$SU(N)$ gauge theory. -
examples/Yukawadoes 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 installTo run the test suite, you can either run
$ make testfrom 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.