FeynmanDiagrams - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

Home : Support : Online Help : Physics : FeynmanDiagrams

Physics[FeynmanDiagrams] - compute an expansion of the Scattering matrix for a model in coordinates representation, or the Scattering matrix element in momentum representation, and the corresponding Feynman Diagrams

Calling Sequence

FeynmanDiagrams(InteractionLagrangian, ...(optional arguments)...)

Parameters

InteractionLagrangian

-

the interaction Lagrangian depending on quantum fields

Description

• 

A scattering matrix  relates the initial and final states,  and , of an interacting system. In an 4-dimensional spacetime with coordinates ,  can be written as:

  

where  is the imaginary unit and  is the interaction Lagrangian, written in terms of quantum fields depending on the spacetime coordinates . The T symbol means time-ordered. For the terminology used in this page, see for instance chapter IV, "The Scattering Matrix", in ref.[1]. This exponential can be expanded as

  

where

  

and  is the time-ordered product of n interaction Lagrangians evaluated at different points. Note the factor  included in the definition of  used in this page.

Coordinates representation

• 

The default output of FeynmanDiagrams(L(X)) is thus  in coordinates representation,  truncated by default at order = 3. The expansion of the time-ordered product entering the integrand of each  (herein called the expansion of ) is computed using Wick's theorems, and  itself, including the factor , is expressed using the FeynmanIntegral command.

• 

The expansion of  consists of a sum of terms, each of which is a product of certain pairings of the operator field functions entering  times 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.

• 

Each term of the expansion of  corresponds to a Feynman diagram with  vertices (the number  of interaction Lagrangians in ). Within the diagram, each of the pairings of fields (propagators) has a corresponding internal line, and each field entering the normal product of unpaired field operators has a corresponding external leg. Each of those terms has a different configuration of external legs (normal products of unpaired fields), and the expanded  being returned includes all the possible configurations of external legs.

Momentum representation

• 

The transition probability for a process with initial and final states  and  in momentum representation is given by the square of the scattering matrix elements . The states  and , with respectively s and r free particles, are normalized such that the average number per unit volume of each of the s and r particles is equal to one (see sec. 21.2 of ref.[1], "Normalization of the State amplitude"). In this sense, each of the s and r fields respectively indicated in incomingparticles and outgoingparticles represent a 1-particle per unit volume with precisely defined average momentum. All the s particles in  have different sets of quantum numbers, and the r particles in  are only those whose momentum has been altered by the scattering process.

• 

The output of FeynmanDiagrams(L(X), incomingparticles = [...], outgoingparticles = [...], numberofloops = n) is thus the S-matrix element  in momentum representation (see formula (2) of sec. 21.1 in ref.[1]), of the form

  

The  (Dirac) is the expected singular factor due to the conservation of the energy-momentum of the s initial (incoming) and r final (outgoing) particles, and , also called the amplitude, is the sum of terms, in momentum representation, corresponding to Feynman diagrams with the number of loops indicated and  external legs.

• 

When the option output = probabilitydensity is given, the output is the transition probability density, that is, the average number of scattered particles per unit time and per unit volume having momenta within the infinitesimal volumes . That probability density is constructed using the square of the scattering matrix element , as shown in formula (13) of sec. 21.1 of ref.[1]:

  

where each  represents the particle density of each of the s particles in the initial state , and for an interpretation of the square of the  factor that appears in  see sec. 64 of ref.[3]. In order to get the number of scattered particles per unit of time and volume that happen in the final momentum region   , the probability density  needs to be integrated over that particular region.

• 

The truncation order of  in , if not specified, is some finite n automatically derived from the interaction Lagrangian, the indicated number of loops, and the number and kind of incoming and outgoing particles. Terms  with  don't contribute to the indicated process.

• 

Although  in momentum representation can be computed departing from the expansion of  in coordinates representation, it is simpler to compute it directly using the Feynman rules in momentum representation (for the conventions used, see chapter V of ref.[1], "The Feynman rules and Diagrams") together with a program for the generation of the Feynman diagrams at any order, implemented in the Maple language following the presentation in ref.[4].

The input representing the interaction Lagrangian

• 

Given an interaction Lagrangian, FeynmanDiagrams considers a field of the problem any function of spacetime variables (set using Coordinates or Setup). It is recommended that you also set the field operators as quantum operator using Setup, and fields that were not set as quantum operators are automatically set as such when you call FeynmanDiagrams.

• 

To represent the Dagger of a complex field, say , use Dagger, as in Dagger(C(X)) or Dagger(C[mu](X)). To represent spinor fields, use anticommutative functions. For that purpose, you can set an anticommutative prefix using Setup. To represent the Dirac conjugate of a spinor field, say Q(X), use DiracConjugate, as in DiracConjugate(Q(X)).

• 

When working in momentum representation beyond tree-level, the propagators of vector field that appear within Feynman integrals include their mass. To indicate that a field is massless use Setup, for instance as in .

• 

When matrix multiplication (e.g. of spinors) enters the interaction Lagrangian, you can enter the expression representing it with the matrix (spinorial) indices explicit. For example, for an interaction Lagrangian in quantum electrodynamics (QED) involving Dirac matrices, you can use DiracConjugate(Q[j](X)) * Dgamma[mu][j,k] * Q[k](X) * A[mu](X) where Q[j](X) and DiracConjugate(Q[j](X)) respectively represent a spinor field and its Dirac conjugate. Note that, depending on the case, the spinor and even spacetime indices can be omitted entirely without ambiguity (see the Examples section).

• 

The summation convention for spacetime, gauge, and spinor repeated indices in products entering the interaction Lagrangian is automatically used by FeynmanDiagrams.

The options for changing the default output

• 

Several options are available to change the default output of FeynmanDiagrams in coordinates and in momentum representation. See the Parameters section above. These options can be used alone or together and are illustrated in the Examples section. Briefly, to compute, in coordinates representation, only the terms that involve diagrams:

– 

with  external legs use the option numberofexternallegs = j;

– 

with some specific external legs specifying a particular physical process use the option normalproducts = ...;

  

and for both coordinates and momentum representation,

– 

to truncate the expansion of  or of  at an order different than the default use the option order = m;

– 

to compute only one term  of the expansion of  or of , use the option numberofvertices = n;

– 

to compute only the terms that involve diagrams with  loops (tree-level is ) use the option numberofloops = k;

– 

to additionally display the diagrams (drawings) corresponding to the terms appearing in the returned output use the option diagrams;

  

NOTE: the vertices of the drawings are displayed in red and encircled in black, and the current implementation of FeynmanDiagrams can only draw the diagrams than contain up to 6 vertices.

• 

When computing in coordinates representation up to order = m, it is convenient to previously set m coordinate systems using Setup or Coordinates to avoid having FeynmanDiagrams introducing labels to represent the  spacetime coordinates that enter the FeynmanIntegrals (each ). When additional labels are necessary, they are all of the form , expressed using literal subscripts X__n, where  is an integer.

• 

When using the normalproducts, excludepropagators or crossedpropagators 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  only, or all the propagators of the form , which would include as well  and .

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);

(1)

Let  be the interaction Lagrangian

L := lambda*phi(X)^4;

(2)

The expansion of  in coordinates representation up to order = 3 is given by

S = FeynmanDiagrams(L);

(3)

To compute only the tree-level terms of this result use numberofloops = 0. To produce the diagrams together with the algebraic expression of , pass also the optional argument diagrams

S__treelevel = FeynmanDiagrams(L, numberofloops = 0, diagrams);

(4)

The expansion of   in coordinates representation to a specific order shows in a compact way the topology of the underlying Feynman diagrams. In the result above there are three terms, with 4, 6 and 8 external legs respectively. A  element in momentum representation corresponding to the term with 4 external legs is one where there are 2 incoming and 2 outgoing particles

FeynmanDiagrams(L, incomingparticles = [phi, phi], outgoingparticles = [phi, phi], numberofloops = 0, diagrams);

(5)

To compute the S-matrix element in momentum representation corresponding to the term with 6 external legs, change in the input above  by , and to get the element corresponding to 8 external legs use . The following computes the expansion of  up to order = 3, only the terms corresponding to diagrams with two external legs

FeynmanDiagrams(L, numberofexternallegs = 2, diagrams);

(6)

Already from the diagrams, in this result there are terms with either 2 or 3 loops. The transition probability density for a process with two external legs - say one incoming and one outgoing particle - so corresponding to the first term with 2 loops, is then

FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 2, diagrams, output = probabilitydensity);

(7)

In the above, the spacetime indices in the square of momenta (denominators of propagators) entering the amplitude F are implicit. To make those indices explicit, use the option putindicesinsquareofmomentum

F = FeynmanDiagrams(L, incoming = [phi], outgoing = [phi], numberofloops = 2, putindices);

(8)

Up to order = 3, all the terms of the expansion of  that contain three loops (see (6)) actually have only 2 external legs, and the corresponding Feynman Diagrams only 3 vertices

FeynmanDiagrams(L, numberofloops = 3);

(9)

A corresponding S-matrix element in momentum representation:

FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 3);

(10)

To compute only one term, say , and for instance including terms with tadpoles use the options numberofvertices = 2 and includetadpoles

S[2] = FeynmanDiagrams(L, numberofvertices = 2, includetadpoles);

(11)

Consider an interaction Lagrangian involving two fields. To indicate that  also represents a quantum field operator ( got set as quantum operator at the beginning), use Setup.

Setup(quantumoperators = eta);

(12)

L__2 := lambda*phi(X)^4 + sigma*eta(X)^3;

(13)

In the expansion of , there are no terms with one external leg  and another , that would be represented as a normal product of unpaired fields

FeynmanDiagrams(L__2, normalproducts = _NP(phi, eta));

(14)

Compute, one at a time, the terms entering the expansion of  up to order 2 that have 0 (tree-level), 1, 2 and 3 loops

S__treelevel = FeynmanDiagrams(L__2, order = 2, numberofloops = 0);

(15)

FeynmanDiagrams(L__2, order = 2, numberofloops = 1);

(16)

FeynmanDiagrams(L__2, order = 2, numberofloops = 2);

(17)

FeynmanDiagrams(L__2, order = 2, numberofloops = 3);

(18)

Indeed, to see terms with three loops you'd need to consider the expansion of  up to  at least

FeynmanDiagrams(L__2, order = 3, numberofloops = 3, diagrams);

(19)

A corresponding S-matrix element in momentum representation with 1 incoming and 1 outgoing particles

FeynmanDiagrams(L__2, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 3);

(20)

Compute the terms entering the integrand of , having four external legs (normal ordered products involving four fields). For the interaction Lagrangian , the normal products of unpaired fields in  only involve the  field

FeynmanDiagrams(L__2, numberofvertices = 3, numberoflegs = 4);

(21)

To get the corresponding S-matrix element in momentum representation, replace  by a process with the same four legs, for example  and . Considering  instead, you also get normal products of  fields

FeynmanDiagrams(L__2, numberofvertices = 2, numberoflegs = 4);

(22)

For this Lagrangian and configuration of vertices and external legs,  includes a term (with symmetry factor = 96) to which corresponds a 1-particle reducible diagram that is also a tadpole:

FeynmanDiagrams(L__2, numberofvertices = 2, numberoflegs = 4, reducible, tadpoles, diagrams);

(23)

Following is an example with the interaction Lagrangian of Quantum Electrodynamics (QED). First, define the vector field .

Define(A[mu]);

(24)

Set the type of letter used to represent spinor indices (you can change this setting according to your preference using Setup) and set  and  as quantum operators, with  being anticommutative to represent the electron field

Setup(spinorindices = lowercaselatin_is, anticommutativeprefix = Q, op = {A, Q});

(25)

So, to represent spinor indices, use lowercase Latin letters from i to s, the spinor fields will be represented by any name prefixed by , and the matrix indices related to the matrix product involving Dirac matrices are written explicitly in the interaction Lagrangian. Use DiracConjugate to represent the Dirac conjugate

L__QED := alpha * DiracConjugate(Q[j](X)) * Dgamma[mu][j, k] * Q[k](X) * A[mu](X);

(26)

Compute , only the terms with 4 external legs, so all the corresponding graphs have no loops, and display the diagrams

FeynmanDiagrams(L__QED, numberofvertices = 2, numberoflegs = 4, diagrams);

(27)

As shown next, there are only two terms entering the integrand of  with two external legs. They both have one loop, and correspond to the self-energy of the photon and the electron (page 218 of ref.[1]) and are given by

FeynmanDiagrams(L__QED, numberofvertices = 2, numberoflegs = 2, diagrams);

(28)

where the diagram with two spinor legs is the electron self-energy. The corresponding S-matrix elements in momentum representation (numberofvertices = 2 can be given, but in this case is not necessary):

FeynmanDiagrams(L__QED, incomingparticles = [Q], outgoing = [Q], numberofloops = 1, diagrams);

(29)

In this result we see the propagator of the field  with a mass . To indicate that this field is massless use

Setup(massless = A);

(30)

Now the propagator for  is the one of a massless vector field:

FeynmanDiagrams(L__QED, incomingparticles = [Q], outgoing = [Q], numberofloops = 1);

(31)

FeynmanDiagrams(L__QED, incomingparticles = [A], outgoing = [A], numberofloops = 1, diagrams);

(32)

In the two self-energy expressions above we see the u-spinor  and the polarization vector .

Compute  for this model, keeping only the terms with 3 external legs

FeynmanDiagrams(L__QED, numberofvertices = 3, numberoflegs = 3, diagrams);

(33)

Note the introduction of spacetime indices (covariant as subscripts and contravariant as superscripts) and spinor indices (all presented as subscripts) by FeynmanDiagrams; this preserves the summation convention for repeated indices by avoiding occurrences of indices more than once in each product. To verify for correctness, the indices and noncommutative products use Check.

Check((33), 'all');

(34)

The transition probability density corresponding to the term with three external vector-boson legs

FeynmanDiagrams(L__QED, incomingparticles = [A], outgoingparticles = [A, A], numberofloops = 1, diagrams, output = probabilitydensity);

(35)

The processes of  with 5 external legs (you can indicate one particular 5 legs' process, among all the possible ones, by specifying the particles entering as external legs  using the option normalproducts):

FeynmanDiagrams(L__QED, numberofvertices = 3, numberoflegs = 5, diagrams);

(36)

Depending on the interaction Lagrangian, it is frequently possible to entirely omit spinor and spacetime indices without ambiguity resulting in less cluttered output. For example, for QED the interaction Lagrangian  introduced lines above can be entered as

L__qed := alpha * DiracConjugate(Q(X)) * Q(X) * A(X);

(37)

In this way, the expressions look more compact. For example, the first two computations performed above with  with spinor and spacetime indices now become

FeynmanDiagrams(L__qed, numberofvertices = 2, numberoflegs = 4);

(38)

The S-matrix element in momentum representation corresponding to the term and diagram with 2 fermion and 2 boson external legs: compare with and without the spinor and spacetime indices and factorize the tree-level terms

FeynmanDiagrams(L__qed, numberofvertices = 2, incomingparticles = [Q, DiracConjugate(Q)], outgoingparticles = [A, A], numberofloops = 0, factortreelevel, diagrams);

(39)

Compare with the related interaction Lagrangian that has the spinor and spacetime indices explicit

FeynmanDiagrams(L__QED, numberofvertices = 2, incomingparticles = [Q, DiracConjugate(Q)], outgoingparticles = [A, A], numberofloops = 0, factortreelevel, diagrams);

(40)

The self-energy terms, that only have 2 external legs and one loop:

FeynmanDiagrams(L__qed, numberofvertices = 2, numberoflegs = 2, diagrams);

(41)

When working with non-Abelian gauge fields, the interaction Lagrangian involves derivatives. FeynmanDiagrams can handle that kind of interaction in momentum representation. Consider for instance a Yang-Mills theory with a massless field  where a is a SU2 index (see eq.(12) of sec. 19.4 of ref.[1]). The interaction Lagrangian can be entered as

Setup(su2indices = lowercaselatin_ah, massless = B, op = B);

(42)

Define(B[mu, a], quiet):

F__B[mu, nu, a] := d_[mu](B[nu, a](X)) - d_[nu](B[mu, a](X));

(43)

L := g/2*LeviCivita[a, b, c]*F__B[mu, nu, a]*B[mu, b](X)*B[nu, c](X) + g^2/4*LeviCivita[a, b, c]*LeviCivita[a, e, f]*B[mu, b](X)*B[nu, c](X)*B[mu, e](X)*B[nu, f](X);

(44)

The transition probability density at tree-level (number of loops = 0) for a process with two incoming and two outgoing B particles is given by

FeynmanDiagrams(L, incomingparticles = [B, B], outgoingparticles = [B, B], numberofloops = 0, output = probabilitydensity, diagrams);

(45)

This process can be computed with 1 or more loops, in which case the number of terms increases significantly. As another interesting non-Abelian model, consider the interaction Lagrangian of the electro-weak part of the Standard Model

Coordinates(clear, Z);

(46)

Setup(quantumoperators = {W, Z});

(47)

Define(W[mu], Z[mu]);

(48)

F__W[mu, nu] := d_[mu](W[nu](X)) - d_[nu](W[mu](X));

(49)

F__Z[mu, nu] := d_[mu](Z[nu](X)) - d_[nu](Z[mu](X));

(50)

L__WZ := I*g*cos(theta__w) * ((Dagger(F__W[mu, nu])*W[mu](X) - Dagger(W[mu](X))*F__W[mu, nu]) * Z[nu](X) + W[nu](X)*Dagger(W[mu](X))*F__Z[mu, nu]);

(51)

This interaction Lagrangian contains six different terms. The S-matrix element for the tree-level process with two incoming and two outgoing W particles is given below. Due to the use of size simplification and the option factortreelevel, the result below is a product of only 10 factors, two of which are nested several times, totaling a computational length of 2750. Expanding that product the computational length is 325,761 and the number of terms is 480.

FeynmanDiagrams(L__WZ, incomingparticles = [W, W], outgoingparticles = [W, W], numberofloops = 0, factor, diagrams);

(52)

 

See Also

conjugate, Dagger, Dgamma, DiracConjugate, FeynmanIntegral, length, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Physics[`*`], Psigma, Setup, simplify/size, StandardModel

References

  

[1] Bogoliubov, N.N., and Shirkov, D.V. Quantum Fields. Benjamin Cummings, 1982.

  

[2] Weinberg, S., The Quantum Theory Of Fields. Cambridge University Press, 2005.

  

[3] Berestetskii, V.B., Lifshitz, E.M., Pitaevskii, L.P., Quantum Electrodynamics. Vol.4, Course of Theoretical Physics, 2nd edition, Pergamon Press, 1982.

  

[4] Xiao, B., Wang, H., Zhu, S., A simple algorithm for automatic Feynman diagrams generation. Computer Physics Communications, Volume 184, Issue 8, (2013).


Download Help Document