Physics[FeynmanIntegral] - compute a Feynman integral, as the ones returned by the FeynmanDiagrams command, appearing in the expansion of the Scattering matrix in momentum representation
Physics[FeynmanIntegral][Evaluate] - evaluate, with options, the Feynman integrals, represented using the inert %FeynmanIntegral command, that appear in the expansion of the Scattering matrix in momentum representation
Physics[FeynmanIntegral][epsilon] - the same as 'FeynmanDiagrams:-epsilon', used to express the prescription to integrate in the complex p[0] plane circumventing the poles of the propagators
Physics[FeynmanIntegral][varepsilon] - represents the dimensional parameter used in the dimension regularization approach
Calling Sequence
FeynmanIntegral(integrand, [[X1], ... [Xn]])
FeynmanIntegral(integrand, [[p1], [p2], ... [pn]], options)
FeynmanIntegral(integrand, p1, options)
Evaluate(expression, options)
Parameters
integrand
-
the integrand that appears in the expansion of the Scattering matrix S=1+S1+S2+... in coordinates representation, or its matrix elements ⁢f⁢|⁢S⁢|⁢i⁢ in momentum representation, in which case loop momentum integration variables are of the form p__n and external momenta are of the form P__n, where n is an integer.
[[X1], ... [Xn]]
a list of lists, here each Xj is a symbol starting with a Capital letter followed by an integer j, as a label representing a coordinates system; it can also be one set using Setup or Coordinates. In this case the integral is in coordinates representation and displayed with a preceding factor inn!, where n is the order of Sn in the expansion of S.
[[p1], ... [pn]]
a list of lists, where each pj is a symbol of the form p__n where n is an integer and it represents the name of a momentum tensor, automatically defined as such when the integral appears in the output of FeynmanDiagrams. In this case, the integral is in momentum representation and has no preceding factor. Instead of a list of lists, this second argument can also be a single p__n.
expression
any algebraic expression, or a set or list of them, typically the output of FeynmanDiagrams, that includes Feynman integrals represented in inert form, with the %FeynmanIntegral command
Options
dimension = ... : the dimension of spacetime around which dimensional regularization is performed. Default value is the dimension indicated by Physics:−Setup⁡dimension
expanddimension = ... : the right-hand side can be true or false (default), to expand the result in series up to order O⁡ϵ before returning it. The ϵ = FeynmanIntegral:-varepsilon is the dimensional parameter, and the integration is performed at dimension d=Physics:−Setup⁡dimension−2⁢ϵ, and be default Physics:−Setup⁡dimension=4.
feynmanparametersintegrated = ... : the right-hand side can be true or false (default), to return right after the Feynman parameters are integrated. This option does not work with alpha parameters.
kindofparameters = ... : the kind of auxiliary parameters - Feynman (default) or α - used to parametrize Feynman integrals.
loopmomentumintegrated = ... : the right-hand side can be true or false (default), to return right after the loop momentum integration is performed. This option does not work with alpha parameters.
mbrepresentation = ... : the right-hand side can be true or false (default), to return right after the Mellin Barnes representation of the Feynman integral is constructed. This option does not work with alpha parameters.
parametrizedform = ... : the right-hand side can be true or false (default), to return the parametrized form after swapping the order of integration: first the loop momentum, then the Feynman or alpha parameters.
quiet = ... : the right-hand side can be true or false (default), to display or not information related to matching keywords
shiftedform = ... : the right-hand side can be true or false (default), to return right after the shift of the loop momentum variable is performed and before performing the Wick rotation. This option does not work with alpha parameters.
wickrotated = ... : the right-hand side can be true or false (default), to return right after the performing the Wick rotation, before performing the momentum integration. This option does not work with alpha parameters.
NOTE: the optional keywords that can have the value true on the right-hand side can be passed just as themselves, not as an equation, representing the value true. For example quiet is the same as quiet = true. Also, you don't need to use the exact spelling of any of these keywords - any unambiguous portion of them suffices, e.g. shifted for shiftedform.
Description
A scattering matrix S relates the initial and final states, ⁢i⁢ and ⁢f⁢, of an interacting system. In an N-dimensional spacetime with coordinates X, S can be written as:
S=T⁡ⅇi⁢∫L⁡XⅆX4
where i is the imaginary unit and L is the interaction Lagrangian, written in terms of quantum fields depending on the spacetime coordinates X. The T symbol means time-ordered. For the terminology used in this page, see for instance chapters IV and V, "The Scattering Matrix" and "The Feynman Rules and Diagrams", in ref.[1]. This exponential can be expanded as
S=1+S1+S2+S3+...
where
Sn=⁡inn!⁢∫…⁢∫T⁡L⁡X__1,…,L⁡X__n⁢ⅆX__14⁢…⁢ⅆX__n4
and T⁡L⁡X1,...,L⁡Xn is the time-ordered product of n interaction Lagrangians evaluated at different points. Note the factor inn! in this definition of Sn used here.
The FeynmanIntegral(integrand, [[X1], [X2], ... [Xn]]) command is thus a computational representation for Sn in coordinates representation. Note the factor inn! included in the definition used here for Sn. That factor is automatically displayed when the second argument, [[X1], [X2], ... [Xn]], is a list of lists of coordinate systems. For details on the algebraic structure of integrand see FeynmanDiagrams.
The FeynmanIntegral(integrand, [[p1], [p2], ... [pn]]) command, where [[p1], [p2], ... [pn]] is a list of lists of spacetime tensors pj, of the form p__n, is a computational representation for the integrals in momentum representation that enter the S-matrix elements ⁢f⁢|⁢S⁢|⁢i⁢ with initial and final states ⁢i⁢ and ⁢f⁢, respectively with s initial particles with defined momentum pi and r final particles with defined momentum pf.
The conventions for representing external and internal (loop integration) momenta are, respectively, that they are symbols of the form P__n and p__n, where n is an integer.
In addition to representing the integral, when working in momentum representation, the command FeynmanIntegral(integrand, [[p1], [p2], ... [pn]]) actually computes the integral, by first introducing Feynman parameters then performing the loop integral using dimensional regularization, using FeynmanIntegral:-Evaluate (see the Examples section).
The Evaluate command also provides a way to investigate the different steps of the computation of a Feynman integral, something of interest in general and also for the case where some of the steps cannot be performed automatically.
Both Evaluate and FeynmanIntegral can compute tensor Feynman integrals by first reducing them to scalar integrals using TensorReduce, as shown in the last example.
In both coordinates and momentum representation, to each element in the list of lists of the second argument in FeynmanIntegral(integrand, [[..], [..], ... [..]]) corresponds a 4-dimensional integral, and the number of elements in that list of lists indicates the number of vertices of the Feynman diagrams corresponding to the Feynman integral.
To obtain the S-matrix elements ⁢f⁢|⁢S⁢|⁢i⁢ in momentum representation for each Sn entering the expansion of S in coordinates representation see sec. 20.1 of ref.[1].
The inert form of this command, %FeynmanIntegral, is used by the FeynmanDiagrams command to represent each Sj entering S=1+S1+...+Sn in coordinates representation, as well as the integrals in momentum representation entering ⁢f⁢|⁢S⁢|⁢i⁢. For details on the algebraic structure of integrand in both representations see FeynmanDiagrams.
Examples
Load the package, set three coordinate systems and set φ to represent a quantum operator
with(Physics):
Setup(mathematicalnotation = true, coordinates = [X, Y, Z], quantumoperators = phi);
⁢Systems of spacetime coordinates are:⁢X=x1,x2,x3,x4,Y=y1,y2,y3,y4,Z=z1,z2,z3,z4
_______________________________________________________
coordinatesystems=X,Y,Z,mathematicalnotation=true,quantumoperators=φ
Let L be the interaction Lagrangian
L := lambda*phi(X)^4;
L≔λ⁢φ⁡X4
The 2nd term of the expansion S=1+S1+S2+... in coordinates representation is represented using the inert form of the FeynmanIntegral command. All the corresponding Feynman diagrams contain two vertices
S[2] = FeynmanDiagrams(L, numberofvertices = 2, diagrams);
S2=I22!∫∫72⁢λ2⁢φ⁡X2⁢φ⁡Y2⁢φ⁡X,φ⁡Y2+16⁢λ2⁢φ⁡X3⁢φ⁡Y3⁢φ⁡X,φ⁡Y+96⁢λ2⁢φ⁡X⁢φ⁡Y⁢φ⁡X,φ⁡Y3ⅆX 4ⅆY 4
From the diagrams above, the possible configurations involve 2, 4 or 6 external legs, with respectively 2, 1 and 0 loops. To get the Feynman integral with the configuration that has only n external legs use the numberofexternallegs option of FeynmanDiagrams
%eval(S[2], legs = 2) = FeynmanDiagrams(L, numberofvertices = 2, numberofexternallegs = 2);
S2legs=2|S2legs=2=I22!∫∫96⁢λ2⁢φ⁡X⁢φ⁡Y⁢φ⁡X,φ⁡Y3ⅆX 4ⅆY 4
Corresponding to this result, one possible specific process involving 2 external legs is that where there is an initial state ⁢i⁢ with 1 incoming particle, and a final state ⁢f⁢ with 1 outgoing particle. The S-matrix element ⁢f⁢|⁢S⁢|⁢i⁢ for that process is expressed in terms of a FeynmanIntegral in momentum representation via
%eval(%Bracket(f, S[2], i), loops = 2) = FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 2);
f|S2|iloops=2|f|S2|iloops=2=∫∫3⁢I8⁢λ2⁢δ⁡−P__2+P__1π7⁢E__1⁢E__2⁢P__1+p__2+p__32−m__φ2+I⁢ε⁢p__22−m__φ2+I⁢ε⁢p__32−m__φ2+I⁢εⅆp__2 4ⅆp__3 4
The Feynman integrals, whose corresponding diagrams have 3 loops, for the same process φ↦φ
%eval(%Bracket(f, S[2], i), loops = 3) = FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 3);
f|S2|iloops=3|f|S2|iloops=3=∫∫∫9⁢λ3⁢δ⁡−P__2+P__132⁢π11⁢E__1⁢E__2⁢p__3+p__4+p__52−m__φ2+I⁢ε⁢−P__1+P__2−p__3−p__4−p__52−m__φ2+I⁢ε⁢p__32−m__φ2+I⁢ε⁢p__42−m__φ2+I⁢ε⁢p__52−m__φ2+I⁢εⅆp__3 4ⅆp__4 4ⅆp__5 4+2⁢∫∫∫9⁢λ3⁢δ⁡−P__2+P__132⁢π11⁢E__1⁢E__2⁢−P__2+p__4+p__52−m__φ2+I⁢ε⁢−P__1+P__2−p__3−p__4−p__52−m__φ2+I⁢ε⁢p__32−m__φ2+I⁢ε⁢p__42−m__φ2+I⁢ε⁢p__52−m__φ2+I⁢εⅆp__3 4ⅆp__4 4ⅆp__5 4+∫∫∫9⁢λ3⁢δ⁡−P__2+P__132⁢π11⁢E__1⁢E__2⁢−P__1−p__2+P__2−p__4−p__52−m__φ2+I⁢ε⁢p__22−m__φ2+I⁢ε⁢−P__2+p__4+p__52−m__φ2+I⁢ε⁢p__42−m__φ2+I⁢ε⁢p__52−m__φ2+I⁢εⅆp__2 4ⅆp__4 4ⅆp__5 4
To evaluate these integrals, you can use the FeynmanIntegral:-Evaluate command, or just activate the inert integrals using value. For these purposes, load the FeynmanIntegral package
with(FeynmanIntegral);
Evaluate,ExpandDimension,FromAbstractRepresentation,Parametrize,Series,SumLookup,TensorBasis,TensorReduce,ToAbstractRepresentation,ε,ϵ
As a simple example, consider this integral, shown as formula 4 in ref [1], Appendix A
%FeynmanIntegral(1/(-m^2+p__1^2+I*epsilon)/(p__1^2+I*epsilon), p__1);
∫1−m2+p__12+I⁢ε⁢p__12+I⁢εⅆp__1 4
Evaluate((8));
I⁢π2−ϵ⁢Γ⁡ϵ⁢m2−ϵ⁢Γ⁡−ϵ+1Γ⁡2−ϵ
Comparing with the result shown in [1]
Pi^(2 - varepsilon)*I*GAMMA(varepsilon)*GAMMA(1 - varepsilon)*1/GAMMA(2 - varepsilon)*1/(m^2)^varepsilon;
I⁢π2−ϵ⁢Γ⁡ϵ⁢Γ⁡−ϵ+1Γ⁡2−ϵ⁢m2ϵ
This book's result is the same as the one obtained using Evaluate:
simplify((10) - (9));
0
In (9) above, we see the dimensional parameter ϵ. To expand the dimension around ϵ keeping terms of order less than 1, pass to Evaluate the optional argument expanddimension, or use
ExpandDimension((9));
I⁢π2⁢ϵ−1+−I⁢π2⁢ln⁡m2+ln⁡π+γ−1+O⁡ϵ
Alternatively, you can use the expanddimension option of Evaluate, in which case all the Feynman integrals found in the first argument (in this example only one) will be automatically expanded with regards to the spacetime dimension
Evaluate((8), expanddimension);
This is the essence of the dimensional regularization approach, where the integral is computed in dimension d=4−2⁢ϵ, then the result splits into a finite and infinite part when ϵ↦0.
An example departing from an interaction Lagrangian
L := lambda*phi(X)^3;
L≔λ⁢φ⁡X3
A process with one incoming and one outgoing particle a 1-loop
FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 1, diagrams);
∫9⁢λ2⁢δ⁡−P__2+P__18⁢π3⁢E__1⁢E__2⁢P__1+p__22−m__φ2+I⁢ε⁢p__22−m__φ2+I⁢εⅆp__2 4
To Parametrize this Feynman integral using Feynman parameters, use
Parametrize((15));
To evaluate the integral you can use Evaluate. For illustration purposes, we tackle this example all the way step by step using the optional arguments of Evaluate, and at the end we perform all the steps in one go via Evaluate((14)).
The first step is parametrizing the integral, resulting in the same returned by Parametrize above but switching the integration order between the loop momentum and the Feynman parameters
Evaluate((15), parametrizedform);
Expanding the denominator, it has a term linear in the loop integration variable p2. The next step then is to complete the square and perform a change of variables shifting p2. This step makes possible a Wick rotation in the next step. The shifted form is
Evaluate((15), shiftedform);
The Wick rotation allows for splitting the integral over the loop momentum into a radial and an angular part in d-dimensions; the Wick rotated form is
Evaluate((15), wickrotated);
The inner integral in d-dimensions is now split into the integral of the solid angle, which is straightforward, and the radial part that can be computed systematically, resulting in
Evaluate((15), loopmomentumintegrated);
At this point a Mellin Barnes representation is constructed
Evaluate((15), mbrepresentation);
9⁢π−2−ϵ⁢δ⁡−P__2+P__1⁢λ2⁢∫−∞⁢I∞⁢I∫01∫01−ξ__1⁢ξ__2⁢P__12σ__1⁢m__φ2−ϵ−σ__1⁢Γ⁡−σ__1⁢Γ⁡ϵ+σ__1⁢δ⁡−1+ξ__1+ξ__2ⅆξ__2ⅆξ__1ⅆσ__116⁢E__1⁢E__2
In this Mellin Barnes representation, the integration of the Feynman parameters is now straightforward
Evaluate((15), feynmanparametersintegrated);
9⁢π−2−ϵ⁢δ⁡−P__2+P__1⁢λ2⁢∫−∞⁢I∞⁢I−P__12σ__1⁢m__φ2−ϵ−σ__1⁢Γ⁡−σ__1⁢Γ⁡ϵ+σ__1⁢Γ⁡σ__1+12Γ⁡2⁢σ__1+2ⅆσ__116⁢E__1⁢E__2
The last step in the integration process involves performing the integral over the Mellin Barnes parameters which can be computed using residues, basically transforming the integral into a sum. So all the steps in one go results in
Evaluate((15));
9⁢I8⁢π−1−ϵ⁢λ2⁢δ⁡−P__2+P__1⁢∑n=0∞⁡P__12⁢n⁢Γ⁡ϵ+n⁢Γ⁡n+1⁢m__φ−2⁢ϵ−2⁢nΓ⁡2⁢n+2E__1⁢E__2
To expand the dimension around ϵ keeping terms of order less than 1, use
ExpandDimension((23));
9⁢I8⁢λ2⁢δ⁡−P__2+P__1π⁢E__1⁢E__2⁢ϵ−1+−9⁢I8⁢λ2⁢δ⁡−P__2+P__1⁢2⁢ln⁡m__φ+γ−∑n=1∞⁡P__12⁢n⁢Γ⁡n⁢Γ⁡n+1Γ⁡2⁢n+2⁢m__φ2⁢n+ln⁡πE__1⁢E__2⁢π+O⁡ϵ
Both Evaluate and FeynmanIntegral can compute tensor Feynman integrals (with occurrences of the loop momentum with free spacetime indices in the numerator) by first reducing them to scalar integrals using TensorReduce. Consider for instance
%FeynmanIntegral(p__1[~mu]/((p__1^2 - m__phi^2 + i * epsilon)*((p__1 - P__1)^2 - m__1^2 + i * epsilon)), p__1);
∫p__1⁢μ⁢μi⁢ε−m__φ2+p__12⁢p__1−P__12−m__12+i⁢εⅆp__1 4
The reduction of this tensor integral to a linear combination of scalar Feynman integrals is given by:
TensorReduce((25));
−m__12−m__φ2−P__1·P__1⁢∫1p__12−m__φ2+I⁢ε⁢p__1−P__12−m__12+I⁢εⅆp__1 4+∫1p__12−m__φ2+I⁢εⅆp__1 4−∫1p__1−P__12−m__12+I⁢εⅆp__1 4⁢P__1⁢μ⁢μ2⁢P__1·P__1
Note that, by design, the reduction process using TensorReduce does not evaluate the integrals so that one can follow the steps clearly using the command's optional arguments. TensorReduce is automatically called by Evaluate and FeynmanIntegral when the integral is tensorial, so the whole process can be performed in one go:
Evaluate((25));
−−I⁢m__12−m__φ2−P__1·P__1⁢π2−ϵ⁢∑n=0∞⁡∑n__1=0∞⁡−−m__12+m__φ2n⁢P__12⁢n__1⁢Γ⁡ϵ+n+n__1⁢Γ⁡n+n__1+1⁢m__φ−2⁢n__1−2⁢ϵ−2⁢nΓ⁡2⁢n__1+n+2⁢Γ⁡n+1−I⁢π2−ϵ⁢m__φ−2⁢ϵ+2⁢Γ⁡ϵ−1+I⁢π2−ϵ⁢m__1−2⁢ϵ+2⁢Γ⁡ϵ−1⁢P__1⁢μ⁢μ2⁢P__1·P__1
See Also
Dgamma, DiracConjugate, ExpandDimension, FeynmanDiagrams, FeynmanIntegral[Overview], Parametrize, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Setup, StandardModel, TensorReduce
References
[1] Smirnov, V.A., Feynman Integral Calculus. Springer, 2006.
[2] Weinberg, S., The Quantum Theory Of Fields. Cambridge University Press, 2005.
[3] Bogoliubov, N.N., and Shirkov, D.V. Quantum Fields. Benjamin Cummings, 1982.
Compatibility
The Physics[FeynmanIntegral], Physics[FeynmanIntegral][Evaluate], Physics[FeynmanIntegral][epsilon] and Physics[FeynmanIntegral][varepsilon] commands were introduced in Maple 2021.
For more information on Maple 2021 changes, see Updates in Maple 2021.
Download Help Document