ShiftPartialD[exp, {FCPartialD[i1], FCPartialD[i2], ...}, field]
uses integration-by-parts identities to shift the derivatives of
QuantumField
s such, that a term containing derivatives with
indices i1, i2, ...
acting on field
is
eliminated from the final expression.
Notice that one must explicitly specify the type of the indices,
e.g. by writing FCPartialD[LorentzIndex[mu]]
or
FCPartialD[CartesianIndex[i]]
. Furthermore, the function
always assumes that the surface term vanishes.
Often, when dealing with large expressions one would to integrate by
parts only certain terms but not every term containing given fields and
derivatives. In such situation one can specify a filter function via the
option Select
.
Overview, ExplicitPartialD, ExpandPartialD, QuantumField
= QuantumField[QuarkFieldPsiDagger, PauliIndex[di1]] . RightPartialD[CartesianIndex[i
exp1 ]] . QuantumField[\[Phi]] . RightPartialD[CartesianIndex[j]] . QuantumField[QuarkFieldPsi, PauliIndex[di2]]
\psi ^{\dagger \;\text{di1}}.\vec{\partial }_i.\phi .\vec{\partial }_j.\psi ^{\text{di2}}
// ExpandPartialD exp1
\psi ^{\dagger \;\text{di1}}.\phi .\left(\partial _i\partial _j\psi ^{\text{di2}}\right)+\psi ^{\dagger \;\text{di1}}.\left(\partial _i\phi \right).\left(\partial _j\psi ^{\text{di2}}\right)
[exp1, {FCPartialD[CartesianIndex[i]]}, QuarkFieldPsi, FCVerbose -> -1] ShiftPartialD
-\left(\partial _i\psi ^{\dagger \;\text{di1}}\right).\phi .\left(\partial _j\psi ^{\text{di2}}\right)
This expression vanishes if one integrates by parts the term containing \partial_\mu A_\nu
= QuantumField[GaugeField, LorentzIndex[nu]] . QuantumField[FCPartialD[LorentzIndex[mu]], FCPartialD[LorentzIndex[mu]],
exp2 [LorentzIndex[rho]], FCPartialD[LorentzIndex[rho]], FCPartialD[LorentzIndex[nu]], FCPartialD[LorentzIndex[tau]],
FCPartialD, LorentzIndex[tau]] + QuantumField[FCPartialD[LorentzIndex[mu]], GaugeField, LorentzIndex[nu]] . QuantumField[FCPartialD[LorentzIndex[rho]],
GaugeField[LorentzIndex[rho]], FCPartialD[LorentzIndex[mu]], FCPartialD[LorentzIndex[nu]], FCPartialD[LorentzIndex[tau]], GaugeField, LorentzIndex[tau]] FCPartialD
A_{\text{nu}}.\left(\partial _{\text{mu}}\partial _{\text{mu}}\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)+\left(\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{mu}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)
By default ShiftPartialD
will also apply IBPs to the
other term, which is not useful here
[exp2, {FCPartialD[LorentzIndex[mu]]}, GaugeField] ShiftPartialD
\text{Applying the following IBP relation: }\left\{\left(\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{mu}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\to -A_{\text{nu}}.\left(\partial _{\text{mu}}\partial _{\text{mu}}\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\right\}
\text{Applying the following IBP relation: }\left\{A_{\text{nu}}.\left(\partial _{\text{mu}}\partial _{\text{mu}}\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\to -2 \left(\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{mu}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)-\left(\partial _{\text{mu}}\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\right\}
-A_{\text{nu}}.\left(\partial _{\text{mu}}\partial _{\text{mu}}\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)-2 \left(\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{mu}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)-\left(\partial _{\text{mu}}\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)
Using a suitable filter function we can readily achieve the desired result
[exp2, {FCPartialD[LorentzIndex[mu]]}, GaugeField, Select ->
ShiftPartialDFunction[x, FreeQ[x, QuantumField[GaugeField, LorentzIndex[nu]]]]]
\text{Applying the following IBP relation: }\left\{\left(\partial _{\text{mu}}A_{\text{nu}}\right).\left(\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{mu}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\to -A_{\text{nu}}.\left(\partial _{\text{mu}}\partial _{\text{mu}}\partial _{\text{rho}}\partial _{\text{rho}}\partial _{\text{nu}}\partial _{\text{tau}}A_{\text{tau}}\right)\right\}
0