FeynCalc / feyncalc

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

Unwanted "Non-list iterator PropagatorDenominator(q,0) ..." warnings + buggy result when doing TID 1-loop tensor reduction #165

Closed HBelusca closed 2 years ago

HBelusca commented 2 years ago

Description

Generating one-loop Feynman integrands by multiplying Feynman rules (expressed with FAD, SP, ...) and doing a tensor reduction with TID, generates in some cases the warning Table::nliter: Non-list iterator PropagatorDenominator(q,0) at position 2 does not evaluate to a real numeric value. and the obtained result contains artificial symbols FeynAmpDenominator[{FeynCalc`FeynAmpDenominatorSimplify`Private`i, 1, 2}].

12.3.1 for Microsoft Windows (64-bit) (June 24, 2021)

FeynCalc 10.0.0 (Development version) - Commit d78187b3ab6fcb28d15f2e8d86b67704b4b81940 (version from April 2) Described problem also happened with FeynCalc 9.3.1 when being run on that version of Mathematica.

Presence of Package-X

Minimal (non-)working example

In[1]:= $KeepLogDivergentScalelessIntegrals = True;

In[2]:= FAD[-p + q] FAD[q, q] FAD[q, q] SP[q, q] // TID[#, q] & // FCE // InputForm

During evaluation of In[2]:= Table::nliter: Non-list iterator PropagatorDenominator(q,0) at position 2 does not evaluate to a real numeric value.

During evaluation of In[2]:= Table::nliter: Non-list iterator PropagatorDenominator(q,0) at position 2 does not evaluate to a real numeric value.

Out[2]//InputForm=
-1/4*(FAD[q, q, -p + q]*FeynAmpDenominator[{FeynCalc`FeynAmpDenominatorSimplify`Private`i, 1, 2}]*(D*SP[p, p] - 4*SPD[p, p]))/(1 - D) + 
 (FAD[q, -p + q]*FeynAmpDenominator[{FeynCalc`FeynAmpDenominatorSimplify`Private`i, 1, 2}]*(2*SP[p, p] - D*SP[p, p] - 4*SPD[p, p]))/
  (2*(1 - D)*SPD[p, p]) + (FAD[q, q]*FeynAmpDenominator[{FeynCalc`FeynAmpDenominatorSimplify`Private`i, 1, 2}]*(D*SP[p, p] - 4*SPD[p, p]))/
  (4*(1 - D)*SPD[p, p])

Expected result: the product of FADs get internally combined into a large one, and the obtained result for TID be the same as the following:

In[3]:= FAD[-p + q, q, q, q, q] SP[q, q] // TID[#, q] & // FCE // InputForm

Out[3]//InputForm=
-1/4*(FAD[q, q, q, q, -p + q]*(D*SP[p, p] - 4*SPD[p, p]))/(1 - D) - (FAD[q, q, -p + q]*(D*SP[p, p] - 4*SPD[p, p]))/(4*(1 - D)*SPD[p, p]^2) + 
 (FAD[q, q, q, -p + q]*(2*SP[p, p] - D*SP[p, p] - 4*SPD[p, p]))/(2*(1 - D)*SPD[p, p])
vsht commented 2 years ago

Thanks, this was a stupid bug in FDS that should be now fixed.

HBelusca commented 2 years ago

Confirmed fixed, thanks!