FeynCalc / feyncalc

Mathematica package for algebraic calculations in elementary particle physics.
https://feyncalc.github.io
GNU General Public License v3.0
310 stars 87 forks source link

Tdec failing with "The solution to the system of linear equations is incorrect" while using FCMultiLoopTID #54

Closed HBelusca closed 4 years ago

HBelusca commented 4 years ago

11.3.0 for Microsoft Windows (64-bit) (March 7, 2018)

9.4.0 master (fb9fc9a5935a3f18694d26df1b6076fe67c63e56)

Using git master repo checkout


As part of some 2-loop calculation in the BMHV scheme for a self-energy (and containing loop of chiral fermions), the following integrand is generated:

FVD[l1, mu1] FVD[l1, mu2] FVD[l2, nu1] FVD[l2, nu2] FVD[l2, nu3]
    FAD[l1, l2, l2, l1 - p, l1 - p, l1 + l2 - p]

The opened Lorentz indices in the momenta come from the uncontraction step, made in FCMultiLoopTID[], because these momenta were originally contracted with 4-dimensional metrics.

Due to the high number of indices this triggers the usage of Tdec, which unexpectedly fails:

<snip...>

Requesting integral of type(l1  \[Mu]1
l1  \[Mu]2
l2  \[Nu]1
l2  \[Nu]2
l2  \[Nu]3

){FeynCalc`Tdec`Private`extMom(p)}in TIDL

Unfortunately, this decomposition formula is not available in TIDL.

Tdec::slow: Tdec is computing a decomposition that is not available in TIDL. This might take quite some time. If this integral often appears in your computations, it is recommended to compute it once and then save the result to the TIDL directory.

< ... snip ...>

During evaluation of In[38]:= ReplaceAll::reps: {Dispatch[FerSolve({....})]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing.

During evaluation of In[38]:= Tdec::failmsg: Error! TID has encountered a fatal problem and must abort the computation. The problem reads: The solution to the system of linear equations is incorrect.

Out[38]= $Aborted

</snip>
vsht commented 4 years ago

But

FCMultiLoopTID[
 FVD[l1, mu1] FVD[l1, mu2] FVD[l2, nu1] FVD[l2, nu2] FVD[l2, nu3]
  FAD[l1, l2, l2, l1 - p, l1 - p, l1 + l2 - p], {l1, l2}]

works fine, right? And why does it use FerSolve in your case?

HBelusca commented 4 years ago

Heh no, it doesn't work, that's the problem! See the attached notebook (in the zip) where I have enabled full verbosity. I have no idea why FerSolve is used. FCMultiLoopTID_Tdec_error.zip

vsht commented 4 years ago

Sorry, should be now fixed.

Note to myself: Don't mix private stuff with stuff in the master branch. Create a private repo for that.

HBelusca commented 4 years ago

Confirmed fixed! Thanks for your help!

vsht commented 4 years ago

Since there seem to be no further issues related to the fix, I'm closing this bug.