Physics[FeynmanDiagrams] - compute the analytic structure of the Feynman Diagrams of a model
FeynmanDiagrams(InteractionLagrangian, vertices = ..., numberoflegs = ..., numberofloops = ..., externallegs = ..., excludepropagators = ..., crossedpropagators = ..., includetadpoles = ..., fields = ...)
the interaction terms of a Lagrangian depending on quantum fields
vertices = ...
(optional) the same as points = ..., list of points at which the Lagrangian is evaluated; these are the vertices of the corresponding Feynman diagrams; default value is 1 vertex
numberoflegs = ...
(optional) the number of external legs of the Feynman diagrams, these legs are represented in the output as _NP(...) normal ordered products; default value is all possible cases
numberofloops = ...
(optional) integer or set of integers; the number of loops of the Feynman diagrams: each line joining two vertices of the loop is a propagator, represented in the output as a list of two fields
externallegs = ...
(optional) the same as normalproducts = ..., the right-hand side is a function _NP(...), or a set of them, where each _NP(...) contains fields or field names as arguments, which are the normal ordered products of unpaired fields expected in the output; to these unpaired fields are associated the external legs of the related Feynman diagrams
excludepropagators = ...
(optional) a list of two fields representing a propagator, or a set of these lists, indicating that terms involving these propagators are to be excluded from the output; the right-hand side can also be one of the keywords free or cross
crossedpropagators = ...
(optional) it can be true or false (default) to indicate that crossed propagators (related to crossed terms in the quadratic part of the Lagrangian) are not zero and so must be taken into account
includetadpoles = ...
(optional) it can be the false (default) or true to include or discard terms containing tadpoles, that is, lines that start and end in the same vertex.
fields = ...
(optional) either a function or its name, or a set or list of them; indicates the fields of the InteractionLagrangian;
A scattering matrix S relates the initial and final states of an interacting system. In an N-dimensional spacetime with coordinates X, S can be written as:
where I is the imaginary unit, 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 chapter IV of Bogoliubov, N.N., and Shirkov, D.V. Quantum Fields. Benjamin Cummings, 1982. This exponential can be expanded as a sum of terms.
Each Sn contains integrals of time-ordered products of the interaction Lagrangians evaluated at different points (vertices of the Feynman Diagram). For example, the second order term is of the form:
where X and Y represent different points in spacetime.
Using Wick's theorems, the FeynmanDiagrams command computes the expanded form of these time-ordered products of interaction Lagrangians in the integrands of each Sn.
The expansion of each Snconsists of a sum of terms, each of which is a product of certain pairings of the operator field functions entering L with the normal product of the remaining unpaired operators of free fields. The pairings between fields are the propagators, the Green functions of the associated free fields.
To each of the terms of the expansion of Sn corresponds a Feynman diagram with n vertices (the number of interaction Lagrangians in Sn). Within the diagram, each of the pairings of fields has a corresponding internal line, and each field entering the normal products of the unpaired field operators has a corresponding external leg. The output of the FeynmanDiagrams command is thus a sum of terms that has a one-to-one correspondence to the sequence of Feynman diagrams for the given interaction Lagrangian.
NOTE: the current implementation of FeynmanDiagrams can expand up to S3 (products of up to three interaction Lagrangians), and therefore can produce the analytic representation of Feynman diagrams with no more than three vertices.
The algebraic structure of the output
For each Sn, the algebraic structure of the output of FeynmanDiagrams is thus of the form:
where sf⁡j are the symmetry factors, and _GFn⁡j (each one corresponds to a Feynman diagram) are functions of one or two arguments of the form:
where n is the number of interaction Lagrangians from which this _GFn function is derived, and p,q,r,s,t,u identify fields entering the interaction Lagrangian. The first case corresponds to the tree-level terms (so no propagators) appearing in Sn, and where the argument of _GFn is a function of name _NP, representing the normal product of the (unpaired) fields fi,fj,…; each of which represents an external leg of the corresponding Feynman diagram. In the second case, the second argument of _GFn is a list of lists where each internal list fk,fl represents a pairing of two fields (a propagator) and so corresponds to a connected line in the Feynman diagram. For the external legs and connected lines, both represented by fields applied at a point, the application point X identifies the vertex where the line joins the Feynman diagram.
Mathematical notation: When the Physics package is loaded in the Standard Graphical User Interface, the _NP function is displayed using textbook notation; for example, _NP⁡φ⁡X,φ⁡Y is displayed as φ⁡X⁢φ⁡Y, and _GF⁡_NP⁡φ⁡X,φ⁡Y,φ⁡X,φ⁡Y is displayed as the product of the time-ordered normal product _NP with the list representing the propagator. In addition, by entering Physics[Setup](mathematicalnotation = true), or by using the Options dialog (go to Tools -> Options, select the Display tab, and set the Typesetting level to Extended), you can see anticommutative and noncommutative variables displayed in different colors and more.
Given an interaction Lagrangian, by default FeynmanDiagrams will consider a field of the problem any function of spacetime variables or function name that has been set to represent a quantum operator by the Setup command. You can override that behavior with the optional argument fields = ..., where the right-hand side is a function, the name of a function field, or a set or list of them.
To represent spinor fields, use anticommutative functions. For that purpose, you can set an anticommutative prefix, or simply load the advanced setup of Physics; both of these are done by using the Setup command. To represent the Dirac-conjugate of a spinor field, you can either use conjugate or Dagger applied to the anticommutative function representing the spinor field.
The summation convention for spacetime, gauge, or spinor repeated indices in products entering the interaction Lagrangian is automatically used by FeynmanDiagrams, so repeated indices of the respective kinds are automatically generated when expanding the time-order products of interaction Lagrangians.
When matrix multiplication enters the interaction Lagrangian, the expression must be entered with the matrix indices explicitly defined. For example, for an interaction Lagrangian in a spinor electrodynamics theory involving Dirac matrices as in Q&conjugate0;⁢γμ⁢Q⁢Aμ, where Q and Q&conjugate0; represent a spinor field and its conjugate, use conjugate(Q[j](X)) * Dgamma[mu][j,k] * Q[k](X) * A[mu](X).
The optional argument numberoflegs = ..., where the right-hand side is an integer between 2 and 9 or a set of them, is used to filter the output of FeynmanDiagrams to include only as many unpaired fields in the normal products (the _NP(...) appearing as first argument of the returned _GF functions). Recall that these unpaired fields represent external legs in the corresponding Feynman diagrams. The current implementation computes with up to 9 external legs.
The optional argument externallegs = ..., where the right-hand side is an _NP function with fields (or field names) as arguments, or a list of such _NP functions, is used to filter the output of FeynmanDiagrams to return only the terms entering Sn having exactly those external legs; that is, having exactly the indicated normal products. In this implementation, the number of external legs cannot be greater than 9, and that is why at most 9 fields can be indicated in the arguments of _NP functions on the right-hand side of this option. Instead of externallegs you can also use as a synonym normalproducts. This option overrides the numberoflegs option.
The optional argument numberofloops = ..., where the right-hand side is an integer between 0 and 3 or is a set of them, is used to filter the output of FeynmanDiagrams to only include terms with as many couples of paired fields (propagators, represented by lists in the second argument of the returned _GF functions). The current implementation computes with up to three loops, and the tree-level graphs correspond to numberofloops = 0.
The optional argument excludepropagators = ..., where the right-hand side is either a list of two fields representing a propagator, or a set or list of these lists, is used to filter out from the output of FeynmanDiagrams all those terms that involve _GF functions containing these propagators.
Note: FeynmanDiagrams does not compute terms involving propagators of two equal anticommutative fields taken at different points (vertices). Thus, for example, if Q is defined as an anticommutative field, then the output will not contain terms with a propagator Q⁡X,Q⁡Y.
When using the field, externallegs, or excludepropagators options, the fields entering the right-hand sides can be referenced by just their names, or also with their functionality. This can be used, for example, to filter out the propagator f⁡X,g⁡Y only, and not all propagators of the form f,g, which would include as well f⁡X,g⁡X,f⁡Y,g⁡Y, and f⁡Y,g⁡X.
The optional argument includetadpoles = ..., where the right-hand side is the word false (default value) or true, is used to indicate whether terms involving tadpoles (diagrams where a line starts and ends in the same vertex) are to be included in the output.
In the Maple Standard GUI, to have the output of this help page use textbook notation, open it as a worksheet (see icon in the toolbar) and execute the input lines below after setting Physics[Setup](mathematicalnotation = true);
Load the package and set three coordinate systems to work in.
⁢Default differentiation variables for d_, D_ and dAlembertian are:⁢X=x1,x2,x3,x4
⁢Systems of spacetime coordinates are:⁢X=x1,x2,x3,x4,Y=y1,y2,y3,y4,Z=z1,z2,z3,z4
L ≔ λ⁢φ⁡X4+σ⁢η⁡X3
The expressions entering S1 (only one vertex and so one evaluation point), representing the connected Feynman graphs for this interaction Lagrangian and discarding terms with tadpoles, is:
To include terms with tadpoles use the option includetadpoles = true or just includetadpoles
You can filter these result to obtain only the tree-level terms (see the Options subsection of the Description).
After using FeynmanDiagrams once, the fields φ and η get automatically set as quantum operators, so you do not need to set them as such again. Alternatively, you can always set them as quantumoperators (before or after calling FeynmanDiagrams) using the Setup command.
* Partial match of 'quantumop' against keyword 'quantumoperators'
The structure of S2 (that is, the expanded form of the time-ordered product of interaction Lagrangians entering the integrand of the second term in the expansion of the scattering matrix) is:
In the result above, the tree-level terms involving propagators are associated with connected, one-particle-reducible Feynman graphs, and can be obtained by specifying numberofloops=0.
NOTE: the current implementation of FeynmanDiagrams can expand products of up to three interaction Lagrangians, so a maximum of three spacetime points are allowed, and therefore produces the analytic representation of Feynman diagrams with no more than three vertices.
Compute only the terms corresponding to Feynman diagrams with two external legs.
Compute only the terms corresponding to Feynman diagrams with two external legs corresponding to the field phi, regardless of the vertex to which they are attached (it could be X or Y).
The same computation but including tadpoles
Compute only the terms with two external legs corresponding to the normal products η⁡X,η⁡Y.