CITE THIS NOTEBOOK: MBcreate: transform Feynman parametric integrals to Mellin-Barnes form by Andrei Belitsky, Alexander Smirnov, and Vladimir Smirnov. Wolfram Community NOV 18 2022.
ORIGINAL ARTICLE: A.V. Belitsky, A.V. Smirnov, V.A. Smirnov (2022). MB Tools reloaded. arXiv:2211.00009 [hep-ph]. https://doi.org/10.48550/arXiv.2211.00009.
ORIGINAL ARTICLE: A.V. Belitsky, A.V. Smirnov, V.A. Smirnov (2022). MB Tools reloaded. arXiv:2211.00009 [hep-ph]. https://doi.org/10.48550/arXiv.2211.00009.
Abstract: We address the problem of evaluation of multiloop Feynman integrals by means of their Mellin-Barnes representation. We introduce a new code MBcreate which allows one to automatically deduce a concise Mellin-Barnes representation for a given parametric integral.
Introduction
Introduction
Download latest commit of the repository @ https://bitbucket.org/feynmanIntegrals/mb/src/master/
MBcreate::usage = "Creates MB representation. Input is either {U, F, loops} or {gammas, monom, {{function, exponent},...}, UsedDelta}.
U and F are Symanzik polynomials corresponding to a given Feynman graph.
Package's options include XVar, ZVar, EpVar, d0, Verbose and SplitExtraVars with default values " XVar "x," ZVar "z," EpVar "ep," d0 "4," Verbose "Automatic," SplitExtraVars "True.
Verbose has options False (minimal), Automatic (middle, default) and True (maximum);
SplitExtraVars has options True (splits kinematical invariant from the start) and False";
U and F are Symanzik polynomials corresponding to a given Feynman graph.
Package's options include XVar, ZVar, EpVar, d0, Verbose and SplitExtraVars with default values " XVar "x," ZVar "z," EpVar "ep," d0 "4," Verbose "Automatic," SplitExtraVars "True.
Verbose has options False (minimal), Automatic (middle, default) and True (maximum);
SplitExtraVars has options True (splits kinematical invariant from the start) and False";
This notebook describes two typical applications:
A1. Obtaining MB representation for a graph with MBcreate;
A2. A typical implementation of the SDExpandAsy -> MBcreate -> MBresolve -> DoAllBarnes -> PSQL chain for a Feynman graph to find its asymptotic expansion.
A1. Obtaining MB representation for a graph with MBcreate;
A2. A typical implementation of the SDExpandAsy -> MBcreate -> MBresolve -> DoAllBarnes -> PSQL chain for a Feynman graph to find its asymptotic expansion.
Loading packages
Loading packages
SetDirectory["/Users/andrei.belitsky/Documents/MBtools"]
Get["/Users/andrei.belitsky/Documents/MBtools/MBcreate.m"]Get["/Users/andrei.belitsky/Documents/MBtools/MB.m"];Get["/Users/andrei.belitsky/Documents/MBtools/MBresolve.m"];Get["/Users/andrei.belitsky/Documents/MBtools/barnesroutines.m"];Get["/Users/andrei.belitsky/Documents/MBtools/MBasymptotics.m"];
Global`ep=ep;
Both Examples require FIESTA5:
Reference: “FIESTA5: numerical high-performance Feynman integral evaluation” by A. V. Smirnov, N. D. Shapurov, L. I. Vysotsky, https://doi.org/10.48550/arXiv.2110.11660
Download latest commit of the repository @ https://bitbucket.org/feynmanIntegrals/fiesta/src/master/
Reference: “FIESTA5: numerical high-performance Feynman integral evaluation” by A. V. Smirnov, N. D. Shapurov, L. I. Vysotsky, https://doi.org/10.48550/arXiv.2110.11660
Download latest commit of the repository @ https://bitbucket.org/feynmanIntegrals/fiesta/src/master/
Get["/Users/andrei.belitsky/Documents/fiesta/FIESTA5/FIESTA5.m"];
Example A1
Example A1
Use FIESTA to determine Symanzik polynomials for a given graph:
props1L={-k1^2,-(k1+p1)^2,-(k1-p2)^2};reps1L={p1^2-S1,p2^2-S2,p1*p2(S1+S2-S12)/2};
IniFI=UF[{k1},props1L,reps1L]
{x[1]+x[2]+x[3],S1x[1]x[2]+S2x[1]x[3]+S12x[2]x[3],1}
FiESTA output:
FIESTAoutput={x[1]+x[2]+x[3],S1x[1]x[2]+S2x[1]x[3]+S12x[2]x[3],1};
Run MBcreate:
MBcreate[FIESTAoutput,VerboseTrue,SplitExtraVarsTrue]
MBcreate[FIESTAoutput,VerboseTrue,SplitExtraVarsFalse]
Example A2
Example A2
Set path to qhull (if needed):
dir="/Users/andrei.belitsky/Documents/qhull-2020.2/bin/qhull"
Use FIESTA to find all regions in the Sudakov expansion of the 3-loop ladder graph T3,3 ( see Fig. 2 of https://arxiv.org/pdf/2209.09263.pdf ):
T33integrand=-,-,-,-,-,-,-,-,-,-;UF3loopXladderT33=UF[{k1,k2,k3},T33integrand,{p1^2-y,p2^2-y,p1*p2y-1/2}];FIESTAoutput=SDExpandAsy[UF3loopXladderT33,{1,1,1,1,1,1,1,1,1,-1},0,0,ExpandVary,AnalyticIntegrationFalse,UsingCFalse,OnlyPrepareRegionsTrue,QHullPathdir]
2
k1
2
k2
2
k3
2
(k3-p1)
2
(k3+p2)
2
(k1+k2+k3-p1)
2
(k1+k2+k3+p2)
2
(k2+k3-p1)
2
(k1+k3+p2)
2
(k1+k2)
FiESTA output:
Region 13 as an example of subsequent calculations:
Region13=FIESTAoutput[[13,2,1]]/.FIESTA`Private`KronekerDelta[x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]+x[9],1]1//Simplify//PowerExpand
Split-up this input into components Ini = {Gammas=pref, monomials=mon, functions=Fun, deltacondition} to feed into MBcreate:
mon=Cases[List@@Region13,x[___]^a_.]/.ListTimes;Y=Cases[List@@Region13,y^a_.]/.ListTimes;pref=(Simplify[Region13/mon]/.x[__]0/.(0^_)1)/Y;fun=List@@(Region13/mon/pref/Y);Fun=Table[List@@fun[[i]],{i,1,Length[fun]}];
Introduce additional analytic regularization (pref is accounted for at the very end):
Ini={1,mon*Product[x[i]^la[i],{i,1,9}],Fun,False}
Run MBcreate:
MBcreate[Ini,VerboseTrue,SplitExtraVarsFalse]
Using output MBintegral of MBcreate, for Laurent expansion making use of routines from MB toolbox (here to order 1/ep^2):
MBintegral=(Gamma[1+la[1]]Gamma[1-ep-la[3]]Gamma[1+la[4]]Gamma[ep+la[3]+la[5]]Gamma[3ep-la[1]-la[5]-la[6]]Gamma[2ep-la[1]-la[3]-la[4]-la[5]-la[6]]Gamma[2-ep-la[7]]Gamma[1-la[1]-la[3]-la[4]-la[5]-la[6]-la[7]-la[8]-la[9]]Gamma[ep+la[7]+la[9]]Gamma[-ep-la[6]-la[8]-z[1]]Gamma[-z[1]]Gamma[1+la[6]+z[1]]Gamma[1-2ep+la[3]+la[4]+la[5]+la[6]+la[8]+z[1]]Gamma[-ep-la[1]-la[9]+z[1]])/(Gamma[3+3ep]Gamma[1-3ep+la[3]+la[4]+la[5]]Gamma[1+2ep-la[1]-la[3]-la[5]-la[6]]Gamma[1+ep-la[1]-la[3]-la[4]-la[5]-la[6]-la[8]]Gamma[2-2ep-la[1]-la[7]-la[9]+z[1]])/.z[1]z1;
MBresolve can handle MBintegral without additional analytic regularization:
la[i_]:={0,0,0,0,0,0,0,0,0}[[i]];
MBintegralCont=MBresolve[MBintegral,ep,OptimizeNowTrue]
MBintegralSelect=MBmerge[MBpreselect[MBintegralCont,{ep,0,-2}]]
MBintegralExpand=MBmerge[MBexpand[MBintegralSelect,1,{ep,0,-2}]]
MBintegralBarnes=MBmerge[DoAllBarnes[MBintegralExpand]]
Num=MBintegrate[MBintegralBarnes,{}]
Initial expression for analytics
An implementation of PSLQ:
PSLQ[num_?NumericQ,basis_?VectorQ]:=Module[{coefficients,result},coefficients=FindIntegerNullVector[Prepend[N[basis,Precision[num]],num]];result=Rest[coefficients].basis/First[coefficients];Sign[N[result]]Sign[num]result];
ep^(-3)
ep^(-2)
Combining individual contributions to get analytical expression:
Exact=InitialExp[[1,1]]+InitialExpEp3Exact/ep^3+InitialExpEp2Exact/ep^2//FullSimplify//Collect[#,ep]&
1
24
6
ep
3
16
5
ep
189-8
2
π
288
4
ep
-36450+2160-15840Zeta[3]
2
π
17280
3
ep
112995-8(945+64)+71280Zeta[3]
2
π
2
π
17280
2
ep
Numerical test :
Num[[1]]-Exact//N//Chop
0
Final result for Region 13:
Y*(pref*Exact//Series[#,{ep,0,-2}]&//FullSimplify//Collect[#,ep]&)
-4ep
y
1
12
6
ep
2
π
144
4
ep
203
4
π
3456
2
ep
31Zeta[3]
12
3
ep
Acknowledgement
Acknowledgement
This work was supported by the U.S. National Science Foundation under the grant No. PHY-2207138, by the Russian Science Foundation under the agreement no. 21-71-30003 (application of MB representations to research in elementary particle physics) and by the Ministry of Education and Science of the Russian Federation as part of the program of the Moscow Center for Fundamental and Applied Mathematics under Agreement No. 075-15-2019-1621 (development of algorithms creating MB representations).