个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证feynlag is a pure-SymPy Python library for extracting tree-level Feynman rules from BSM Lagrangians. It automates the pipeline from declaring fields/gauge groups all the way to UFO export (MadGraph-compatible)
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Tree-level Feynman rules from Beyond-Standard-Model Lagrangians, in pure
SymPy.
You declare particle fields with their gauge and discrete-symmetry
representations, write the Lagrangian explicitly with library building blocks
(Dmu, dag, Bilinear), and feynlag takes it from there:查看完整 README ↗Tree-level Feynman rules from Beyond-Standard-Model Lagrangians, in pure SymPy.
You declare particle fields with their gauge and discrete-symmetry
representations, write the Lagrangian explicitly with library building blocks
(Dmu, dag, Bilinear), and feynlag takes it from there:
Model.validate()): invariance,
hermiticity, anomaly cancellation, charge conservation,feynlag.pheno): decay widths and branching ratios
(tree-level 1→2, off-shell h→WW*/ZZ*, loop-induced h→gg/γγ/Zγ) and
tree-level 2→2 cross sections with forward–backward asymmetries.Parameters are split into external (fixed by experiment, e.g. v, m_h,
g) and internal (derived: tadpole solutions, mixing angles, inverted
quartics), forming a dependency chain that closes the UFO parameter card.
Full docs, including an Algorithms Manual deriving the physics and design of every pipeline stage (invariance checking, EWSB/tadpoles, mass matrices, diagonalization, vertex extraction, export), tutorial notebooks, an examples gallery, and the API reference: https://moiseszeleny.github.io/feynlag/
pip install feynlag # add [numeric] for SciPy-backed integration
For development:
pip install -e .[dev]
pytest
import sympy as sp
from feynlag import (ExternalParameter, InternalParameter, SU2, U1, Scalar,
Lagrangian, Model, Dmu, dag)
gw = ExternalParameter("gw", 0.6535, positive=True)
g1 = ExternalParameter("g1", 0.3580, positive=True)
SU2L, U1Y = SU2("SU2L", coupling=gw), U1("U1Y", coupling=g1)
v = ExternalParameter("v", 246.0, positive=True, unit_dim=1)
lam = ExternalParameter("lam", 0.129)
mu2 = InternalParameter("mu2", unit_dim=2) # defined by the tadpole
H = Scalar("H", reps={SU2L: 2, U1Y: sp.Rational(1, 2)},
component_names=["Gp", "H0"])
H.expand_vev({H.components[1]: v}) # H0 -> (v + h + i G0)/√2
HdH = (dag(H) * H.mat)[0]
DH = Dmu(H)
L = Lagrangian()
L.add((dag(DH) * DH)[0], sector="kinetic")
L.add(mu2.s * HdH - lam.s * HdH**2, sector="potential")
m = Model("SM", gauge_groups=[SU2L, U1Y],
fields=[H, SU2L.bosons("W"), U1Y.bosons("B")],
parameters=[gw, g1, v, lam, mu2], lagrangian=L)
m.check_invariance() # gauge invariance, hermiticity, dim ≤ 4
m.solve_tadpoles([mu2]) # {mu2: lam v²}, registered as internal
h = sp.Symbol("H0_r", real=True)
m.mass_matrix([h]) # Matrix([[2 lam v²]])
m.feynman_rules([h]) # {(h,h,h): -6i lam v, (h,h,h,h): -6i lam}
See examples/ (index: examples/README.md) for full runs: sm_scalar_gauge.py (complete SM: Higgs +
electroweak gauge + leptons + quark/QCD sector), sm_vll.py (SM + a
vector-like lepton doublet, biunitary mass-matrix diagonalization),
sm_u1x.py (SM × U(1)_X with a Z′, symbolic charges, chained rotations),
thdm.py (2HDM with the α rotation), thdm_s3.py (3HDM+S₃, where the
tadpole conditions force the √3 vacuum alignment), sm_ckm.py (CKM quark
mixing), fermi_theory.py (four-fermion muon decay), sm_weinberg.py and
sm_seesaw.py (Majorana neutrino masses), sm_decays.py and
sm_higgs_decays.py (widths and the full Higgs branching-ratio table), and
ee_to_ff.py (2→2 scattering). The
docs site walks these models
stage by stage in ten executed tutorial notebooks.
The test suite pins the physics, not just the code (dual verification: symbolic difference and random-point numeric checks):
μ² = λv², m_h² = 2λv², h³ = −3i m_h²/v, h⁴ = −3i m_h²/v²m_W = gv/2, Weinberg rotation, hWW = i g m_W g^{μν},
γW⁺W⁻ = e, ZW⁺W⁻ = g cosθ_W, scalar-QED Goldstone verticeshℓℓ = −i m_ℓ/v, Wℓν = i g/√2 γ^μ P_L,
Z couplings ∝ T³ − Q sin²θ_W√3 alignmenthWW coupling pinned numericallyfeynlag 0.1 is a beta: the tree-level pipeline above is complete and
tested (400+ tests pinning physical results), and the exported SM UFO is
cross-checked against MadGraph (e+e-→μ+μ- and the gauge-cancelling
e+e-→W+W- reproduce the stock sm cross sections to MC precision, and a
four-fermion UFO reproduces the muon width — see
docs/benchmark.md).
Known limitations (planned, see docs/roadmap.md):
VVV decays are not implemented;Unsupported cases raise NotImplementedError rather than returning a
plausible-looking wrong answer.
MIT — see LICENSE.