Name: Vladyslav Shtabovenko Date: 09/01/17-11:49:57 AM Z
Hi,
the first issue is related to the fact that originally I wanted
FCMultiLoopTID to ignore integrals that contain less loop momenta than
given in the argument of the function. However, at the present stage
of
the development there is no need for that, so I pushed the
corresponding
changes to the repository.
<https://github.com/FeynCalc/feyncalc/commit/9a0a983482c7719b8bf8c29d31e77f035aafe4c7>
The second issue is more subtle. The problem is that sometimes
applying
FeynAmpDenominator or ExpandScalarProduct after ApartFF leads to a
change of the basis, such that the resulting integrals again exhibit a
linear dependence in the propagators.
For example, the integral
int = FAD[{p3, m}] FAD[p1, {p2, m}, {p1 - p2, m}, {p1 - p2,
m}, {p1 -
p3, m}] SPD[p1 - p2, p3]
contains no linearly dependent propagators.
FCLoopBasisOverdeterminedQ[int, {p1, p2, p3}]
However, if we rewrite (p1-p2).p3 as p1.p2 - p2.p3, thus splitting
the integral into two, then one of the integrals will have linearly
dependent propagators, such that ApartFF will rewrite it into something
else
ApartFF[ExpandScalarProduct[int], {p1, p2, p3}] // FCE
1/2 FAD[{p3, m}, p1, {p2, m}, {-p1 + p2, m}, {-p1 + p2, m}]
Essentially, here we traded the basis integral with one (p1-p2).p3 in
the numerator for an integral with a p2.p3 in the numerator plus some
more integrals.
Such “involuntary” transformations are difficult to avoid, since in
some
situation FDS and ExpandScalarProduct really make the result much
simpler, while in others the output becomes more complicated.
One would need a bunch of new options to have more control over that
and
possibly a generic mechanism to specify the preferred basis. This is
not
something I can code in a day or so. As a workaround you can use,
exp3 = FCMultiLoopTID[exp2, {p1, p2, p3},
ExpandScalarProduct -> False, FDS -> False]
which works in this particular case
Cheers,
Vladyslav
Am 01.09.2017 um 03:28 schrieb Philipp:
> Hi,
>
> I was decomposing the following expressions in the 3 loop momenta
{p1,p2,p3} with FCMultiLoopTID
>
> exp = CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[-p1+p2,D],I
mE],PropagatorDenominator[Momentum[-p1+p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],Momentum[p1,D]]
Pair[LorentzIndex[Lor2,D],Momentum[p1,D]]
(Pair[Momentum[p1,D],Momentum[p1,D]]-2
(Pair[Momentum[p1,D],Momentum[p2,D]]+Pair[Momentum[p1,D],Momentum[p3,D]]-2
Pair[Momentum[p2,D],Momentum[p3,D]]))^2
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]
>
> However after the decomposition I am still left with an expression
that is not scalarised and has open Lorentz indices lor1,lor2 and only
depends on two loop momenta even:
>
> (1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]] Pair[Lorentz
> Index[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[-Momentum[p1,D]+Momentum[p2,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],Prop
>
agatorDenominator[-Momentum[p1,D]+Momentum[p2,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)CA^3 mE^2
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDeno
>
minator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[-Momentum[p1,D]+Momentum[p2,D],I
mE]]
Pair[LorentzIndex[Lor1,D],Momentum[p1,D]]
Pair[LorentzIndex[Lor2,D],Momentum[p1,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momen
> tum[p3,D],I mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p2,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)8 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],I
mE],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p2,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)2 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[-Momentum[p1,D]+Momentum[p2,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]
SMP[g_s]^6 SUNDelta[SU
> NIndex[a],SUNIndex[b]]-(1/D)8 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],I
mE],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p2,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)8 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],I
mE],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[-Momentum[p1,D]+Momentum[p2,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]-(1/D)8 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[M
>
omentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p2,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)16 CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[p1,D],I
mE],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p2,D],0],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p2,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p1,D],Momentum[p3,D]]^2
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]+(1/D)CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorDenominator[Momentum[p1,D],0],PropagatorD
> enominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D]-Momentum[p3,D],I
mE]]
Pair[LorentzIndex[Lor1,D],LorentzIndex[Lor2,D]]
Pair[Momentum[p3,D],Momentum[p3,D]]
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]]
>
> Am I missing something here? It works, however, when performing the
decomposition with ApartFF->False and then individually using ApartFF
afterwards.
>
> Also in some cases when using your FIRE interface it appears that
after the tensor integral decomposition one is still left with integrals
that have linearly dependent propagators (or at least an error is
given:
>
> exp2 = -(1/2) CA^3
FeynAmpDenominator[PropagatorDenominator[Momentum[p1,D],I
mE],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1+p2,D],0],PropagatorDenominator[Momentum[p1+p2,D],0],PropagatorDenominator[Momentum[p3,D],I
mE],PropagatorDenominator[Momentum[-p1-p2+p3,D],I
mE],PropagatorDenominator[Momentum[p2,D],I
mE],PropagatorDenominator[Momentum[p1,D],I mE]]
Pair[LorentzIndex[Lor1,D],Momentum[p1,D]]
Pair[LorentzIndex[Lor2,D],Momentum[p2,D]]
(Pair[Momentum[p1,D],Momentum[p1,D]]-2
Pair[Momentum[p1,D],Momentum[p3,D]]-Pair[Momentum[p2,D],Momentum[p2,D]]+2
Pair[Momentum[p2,D],Momentum[p3,D]])^2
SMP[g_s]^6
SUNDelta[SUNIndex[a],SUNIndex[b]];
>
> FCMultiLoopTID[exp2,{p1,p2,p3}];
> FIREBurn[%,{p1,p2,p3},{q}];
>
> Here FIREBurn gives the error FIREBurn::lindep which shouldn’t
appear given the fact that the decomposition was done automatically with
ApartFF.
>
> Thanks for your help.
>
> Cheers,
> Philipp
>