FeynCalc 是一个运行在 Wolfram Mathematica 平台上的符号计算软件包,用于量子场论与粒子物理中的代数推演和费曼图计算。它由 Rolf Mertig 等人于 1991 年首次发布,能够处理洛伦兹指标收缩、Dirac 代数、色因子以及单圈积分约化等任务,并以 GNU 通用公共许可证第三版开源发布,长期由 Mertig、Frederik Orellana 和 Vladyslav Shtabovenko 志愿维护。该软件采用半自动的设计思路,把每一步计算的控制权交给使用者,因而在超出全自动工具适用范围的多圈和有效场论计算中被广泛采用。
定义
FeynCalc 是一个 Mathematica 软件包,用于费曼图的符号化求值以及量子场论和基本粒子物理中的代数计算[1]。它的定位是半自动计算工具:软件包本身只负责对输入的表达式做符号运算,既不生成费曼图,也不做数值积分,图生成等环节要依靠 FeynArts 等外部程序[2]。
作为符号计算工具,FeynCalc 不只处理完整的费曼图,也能直接操作独立的量子场论表达式,例如单独的 Dirac 迹、洛伦兹矢量或圈积分[3]。使用者无需遵循固定流程,可以把它当作量子场论表达式的“计算器”使用[3]。
原理
FeynCalc 在 Wolfram 语言环境中实现了一系列与场论代数相对应的符号操作。常见功能包括洛伦兹指标收缩、色因子计算、Dirac 矩阵操作与求迹、非交换代数工具、SU(N) 代数,以及与费曼图相关的积分表、卷积表和费曼规则表,支持在 4 维或 D 维下进行张量与 Dirac 代数运算[1]。它还能从拉格朗日量出发推导费曼规则,并把结果导出为 FORM 或 FORTRAN 代码[1]。
在圈积分处理上,FeynCalc 早期依靠 Passarino-Veltman 约化,把单圈振幅化为标准的标量积分。与之配套的 TID 例程执行单圈张量积分分解,可把张量积分化为 Passarino-Veltman 标量函数,当 Gram 行列式为零时则切换到系数函数形式[4]。对于多圈情形,软件包引入 GLI 与 FCTopology 等符号来承载圈积分与积分拓扑,并通过拓扑识别、部分分式分解和积分基的构造来化简结果[5]。
部分分式分解是化简标量积分的重要环节。FeynCalc 采用基于 Feng 提出算法的例程 ApartFF,把圈积分的分母按传播子结构重新组合,从而消去多余的标量乘积,这套实现直接内嵌在软件包中而非外挂调用[4]。软件包还提供 FCLoopScalelessQ 等函数检测无标度积分,以及 FCLoopBasisIncompleteQ 等函数判断积分基是否需要补全[6]。
发展历程
FeynCalc 的首个版本于 1991 年由 Rolf Mertig、M. Böhm 和 A. Denner 在 Computer Physics Communications 上公布,主题是费曼振幅的计算机代数计算[7]。此后 Frederik Orellana 于 1997 年加入开发,Vladyslav Shtabovenko 于 2014 年加入[8]。从 2001 年到 2014 年,开发工作主要限于修复已发现的缺陷[3]。
2016 年 1 月,经过约 3 年开发,FeynCalc 9 系列正式发布[9]。这一版本要求 Mathematica 8 及以上,引入了自动安装脚本,改进并几乎重写了单圈张量约化的 TID 例程,新增多圈张量约化函数 FCMultiLoopTID、部分分式分解算法,并改善了与 FeynArts 的接口[3]。2020 年发布的 9.3 版进一步改进与其他软件的互操作性,加入自动提取单圈积分紫外发散部分的能力,并支持含有 Majorana 费米子及带显式 Dirac 指标的 γ 矩阵的振幅[10]。
2023 年 12 月发布的 FeynCalc 10.0.0 把重点转向多圈计算,新增拓扑识别与最小化、优化后的张量约化、无标度积分检测、Symanzik 多项式推导以及对微分方程和迭代积分的初步支持,同时重写了色代数化简例程。随后 10.1.0 于 2024 年 8 月发布,10.2.0 于 2025 年 12 月发布[11]。10.2 版本引入 FCLoopFindTensorBasis 等例程,用以处理多圈张量约化中长期存在的零 Gram 行列式问题[5]。
应用
FeynCalc 适用于中小规模的计算,尤其是那些过于特殊、难以用全自动软件包处理的问题[2]。常见的用法包括计算机场论表达式的代数化简、检验他人给出的结果,以及对振幅做较细致的分步操作[8]。在有效场论中,它被用于匹配系数的求解,相关能力在 10 版中由 FCMatchSolve 一类例程承担[12]。
在实际的科研工作中,FeynCalc 常与其他工具组成计算链。它通过 FeynHelpers 附加包与积分约化程序 FIRE、数值与解析积分库 Package-X 对接,并能借助该附加包用 QGRAF 生成费曼图、用 FIESTA 或 pySecDec 求数值结果[5]。也有研究工作把最繁重的部分交给 FORM 等程序完成,再用 FeynCalc 构造线性无关的积分拓扑基并做交叉检验[13]。
为便于使用,FeynCalc 提供了自动安装脚本,用户在新开的 Mathematica 内核中运行导入安装文件并执行 InstallFeynCalc[] 即可完成部署[1]。自 10 版起,所有 10.0 以上版本的 Mathematica 均受支持。软件以 GNU 通用公共许可证第三版发布,源代码托管在 GitHub 上[1]。
局限
FeynCalc 完全用 Wolfram 语言编写,脱离 Mathematica 便无法运行[2]。它以符号代数为唯一手段,数值积分、图生成等环节必须借助外部程序[8]。由于沿用了 Mathematica 的表达式结构,当项数急剧增加时,计算速度会明显下降,整体上比 FORM 慢得多,因此不适合规模很大或结构复杂的计算[2]。FeynCalc 的官方文档也指出,对于本可从头到尾自动完成的研究,坚持使用 FeynCalc 并不高效[14]。
即便在 10 版大幅强化多圈能力之后,受 Mathematica 性能制约,能够完整算出的多圈图数量及其复杂度仍然相当有限,软件在多圈计算中更适合充当组织、约化与交叉校验的辅助工具,而不是主力求解器。到 10 版为止,软件仍不支持旋量-螺旋度形式,这在处理无质量费米子时是一种更高效的方法,相关功能仍列在开发计划中[15]。此外,并行计算需要用户对选定的函数手动开启[5]。
参见
-
FeynArts —— 用于生成费曼图的 Mathematica 软件包,其输出可转换后在 FeynCalc 中求值。
-
FORM —— 符号计算程序,FeynCalc 能与它互相转换代码,其运算速度通常更快。
-
Passarino-Veltman 约化 —— 把单圈张量积分化为标准标量积分的方法,是 FeynCalc 圈积分功能的基础。
-
量子场论 —— FeynCalc 所服务的理论框架,软件用于其中的振幅与费曼图计算。
-
有效场论 —— FeynCalc 较具优势的应用方向,常用于匹配系数的求解。
参考资料
- FeynCalc [引用日期2026-10-14]
- FeynCalc: Where we are now and where we are going based on [引用日期2026-10-14]
- FeynCalc 9 [引用日期2026-10-14]
- FEYNCALC 9 [引用日期2026-10-14]
- arxiv.org 上的 PDF 文件 [引用日期2026-10-14]
- FeynCalc manual (development version) [引用日期2026-10-14]
- Tools and Tables for Quantum Field Theory Calculations [引用日期2026-10-14]
- FEYNHELPERS: CONNECTING FEYNCALC TO FIRE AND PACKAGE-X [引用日期2026-10-14]
- · FeynCalc [引用日期2026-10-14]
- semanticscholar.org 上的网页 [引用日期2026-10-14]
- Releases · FeynCalc/feyncalc - Skip to content [引用日期2026-10-14]
- FeynCalc 10: Do multiloop integrals dream of computer codes? [引用日期2026-10-14]
- FeynCalc 9.3: New features and improvements [引用日期2026-10-14]
- New Developments in FeynCalc 9.0 [引用日期2026-10-14]
- arxiv.org 上的网页 [引用日期2026-10-14]