Expanding and undoing
expansions
See also
Overview.
Manipulations
FeynCalc offers further useful functions for the manipulations of
Lorentz tensors and Dirac matrices. To expand scalar products
ex1 = SP[p + q + r, s + t]
(p+q+r)⋅(s+t)
or expressions like
ex2 = FV[p + q + r, \[Mu]]
(p+q+r)μ
one can use
p⋅s+p⋅t+q⋅s+q⋅t+r⋅s+r⋅t
pμ+qμ+rμ
Notice that ExpandScalarProduct
can also do expansions
only for the given momentum, while leaving the rest of the expression
untouched, e.g.
x SP[p1 + p2, q1 + q2] + y SP[p3 + p4, q3 + q4] + z SP[p5 + p6, q5 + q6]
ExpandScalarProduct[%, Momentum -> {p1}]
x((p1+p2)⋅(q1+q2))+y((p3+p4)⋅(q3+q4))+z((p5+p6)⋅(q5+q6))
x(p1⋅(q1+q2)+p2⋅(q1+q2))+y((p3+p4)⋅(q3+q4))+z((p5+p6)⋅(q5+q6))
For the expansion of Eps
tensors, we use
LC[][p1 + p2, q, r, s]
EpsEvaluate[%]
ϵˉp1+p2qrs
ϵˉp1qrs+ϵˉp2qrs
EpsEvaluate
also reorders the arguments of
Eps
according to its antisymmetric properties
LC[\[Mu], \[Sigma], \[Rho], \[Nu]]
EpsEvaluate[%]
ϵˉμσρν
−ϵˉμνρσ
The inverse of ExpandScalarProduct
is called
MomentumCombine
3 FV[p, \[Mu]] + 4 FV[q, \[Mu]]
MomentumCombine[%]
3pμ+4qμ
(3p+4q)μ
This also works for scalar products, but the results may not be
always optimal
SP[p + q + t, r + s]
ExpandScalarProduct[%]
MomentumCombine[%]
(r+s)⋅(p+q+t)
p⋅r+p⋅s+q⋅r+q⋅s+r⋅t+s⋅t
(r+s)⋅(p+q+t)
SP[p + q + t, r + s] + SP[r, s]
ExpandScalarProduct[%]
MomentumCombine[%]
(r+s)⋅(p+q+t)+r⋅s
p⋅r+p⋅s+q⋅r+q⋅s+r⋅s+r⋅t+s⋅t
(p+q)⋅(r+s)+r⋅(s+t)+s⋅t
For Dirac matrices the corresponding functions are
DiracGammaExpand
and DiracGammaCombine
GA[\[Mu]] . GS[p + q] . GA[\[Nu]] . GS[r + s]
DiracGammaExpand[%]
DiracGammaCombine[%]
γˉμ.(γˉ⋅(p+q)).γˉν.(γˉ⋅(r+s))
γˉμ.(γˉ⋅p+γˉ⋅q).γˉν.(γˉ⋅r+γˉ⋅s)
γˉμ.(γˉ⋅(p+q)).γˉν.(γˉ⋅(r+s))
Notice the DiracGammaExpand
does not expand the whole
noncommutative product. If you need that, use
DotSimplify
GA[\[Mu]] . GS[p + q] . GA[\[Nu]] . GS[r + s]
% // DiracGammaExpand // DotSimplify
γˉμ.(γˉ⋅(p+q)).γˉν.(γˉ⋅(r+s))
γˉμ.(γˉ⋅p).γˉν.(γˉ⋅r)+γˉμ.(γˉ⋅p).γˉν.(γˉ⋅s)+γˉμ.(γˉ⋅q).γˉν.(γˉ⋅r)+γˉμ.(γˉ⋅q).γˉν.(γˉ⋅s)