FromGFAD[exp]
converts all suitable generic propagator denominators into standard and Cartesian propagator denominators.
The options InitialSubstitutions
and IntermediateSubstitutions
can be used to help the function handle nontrivial propagators.
For propagators containing symbolic variables it might be necessary to tell the function that those are larger than zero (if applicable), so that expressions such as \sqrt{\lambda^2} can be simplified accordingly.
Overview, GFAD, SFAD, CFAD, FeynAmpDenominatorExplicit.
[SPD[p1]]
GFAD
= FromGFAD[%] ex
\frac{1}{(\text{p1}^2+i \eta )}
\frac{1}{(\text{p1}^2+i \eta )}
// StandardForm
ex
(*FeynAmpDenominator[StandardPropagatorDenominator[Momentum[p1, D], 0, 0, {1, 1}]]*)
[SPD[p1] + 2 SPD[p1, p2]]
GFAD
= FromGFAD[%] ex
\frac{1}{(\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})+i \eta )}
\frac{1}{(\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})+i \eta )}
// StandardForm
ex
(*FeynAmpDenominator[StandardPropagatorDenominator[Momentum[p1, D], 2 Pair[Momentum[p1, D], Momentum[p2, D]], 0, {1, 1}]]*)
[{{CSPD[p1] + 2 CSPD[p1, p2] + m^2, -1}, 2}]
GFAD
= FromGFAD[%] ex
\frac{1}{(m^2+\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})-i \eta )^2}
\frac{1}{(\text{p1}\cdot (\text{p1}+2 \;\text{p2})+m^2-i \eta )^2}
// StandardForm
ex
(*FeynAmpDenominator[CartesianPropagatorDenominator[0, CartesianPair[CartesianMomentum[p1, -1 + D], CartesianMomentum[p1 + 2 p2, -1 + D]], m^2, {2, -1}]]*)
= FeynAmpDenominator[GenericPropagatorDenominator[-la Pair[Momentum[p1, D],
prop [p1, D]] + 2 Pair[Momentum[p1, D], Momentum[q, D]], {1,1}]] Momentum
\frac{1}{(2 (\text{p1}\cdot q)-\text{la} \;\text{p1}^2+i \eta )}
= FromGFAD[prop] ex
\frac{1}{(-\text{la} \;\text{p1}^2+2 (\text{p1}\cdot q)+i \eta )}
// StandardForm ex
\text{FeynAmpDenominator}\left[\text{StandardPropagatorDenominator}\left[\sqrt{-\text{la}} \;\text{Momentum}[\text{p1},D],2 \;\text{Pair}[\text{Momentum}[\text{p1},D],\text{Momentum}[q,D]],0,\{1,1\}\right]\right]
= FromGFAD[prop, PowerExpand -> {la}] ex
\frac{1}{(-\text{la} \;\text{p1}^2+2 (\text{p1}\cdot q)+i \eta )}
// StandardForm ex
\text{FeynAmpDenominator}\left[\text{StandardPropagatorDenominator}\left[i \sqrt{\text{la}} \;\text{Momentum}[\text{p1},D],2 \;\text{Pair}[\text{Momentum}[\text{p1},D],\text{Momentum}[q,D]],0,\{1,1\}\right]\right]
= GFAD[{{-SPD[p1, p1], 1}, 1}]*GFAD[{{SPD[p1, -p1 + 2*p3] - SPD[p3, p3], 1}, 1}]*
ex [{{-SPD[p3, p3], 1}, 1}]*SFAD[{{I*(p1 + q), 0}, {-mb^2, 1}, 1}]*
GFAD[{{I*(p3 + q), 0}, {-mb^2, 1}, 1}] + (-2*mg^2*GFAD[{{-SPD[p1, p1], 1}, 2}]*
SFAD[{{SPD[p1, -p1 + 2*p3] - SPD[p3, p3], 1}, 1}]*GFAD[{{-SPD[p3, p3], 1}, 1}]*
GFAD[{{I*(p1 + q), 0}, {-mb^2, 1}, 1}]*SFAD[{{I*(p3 + q), 0}, {-mb^2, 1}, 1}] -
SFAD2*mg^2*GFAD[{{-SPD[p1, p1], 1}, 1}]*GFAD[{{SPD[p1, -p1 + 2*p3] - SPD[p3, p3],
1}, 2}]*GFAD[{{-SPD[p3, p3], 1}, 1}]*SFAD[{{I*(p1 + q), 0}, {-mb^2, 1}, 1}]*
[{{I*(p3 + q), 0}, {-mb^2, 1}, 1}] - 2*mg^2*GFAD[{{-SPD[p1, p1], 1},
SFAD1}]*GFAD[{{SPD[p1, -p1 + 2*p3] - SPD[p3, p3], 1}, 1}]*GFAD[{{-SPD[p3, p3],
1}, 2}]*SFAD[{{I*(p1 + q), 0}, {-mb^2, 1}, 1}]*SFAD[{{I*(p3 + q), 0},
{-mb^2, 1}, 1}])/2
\frac{1}{2} \left(-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta )^2 (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )^2}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta )^2 (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )}\right)+\frac{1}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )}
[ex] FromGFAD
\frac{1}{2} \left(-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta )^2 (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+\text{p1}\cdot (2 \;\text{p3}-\text{p1})+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta )^2 (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+\text{p1}\cdot (2 \;\text{p3}-\text{p1})+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+\text{p1}\cdot (2 \;\text{p3}-\text{p1})+i \eta )^2}\right)+\frac{1}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+\text{p1}\cdot (2 \;\text{p3}-\text{p1})+i \eta )}
Using the option InitialSubstitutions
one can perform certain replacement that might not be found automatically
= GFAD[SPD[k1] + 2 SPD[k1, k2] + SPD[k2] + SPD[k1, n]] ex
\frac{1}{(\text{k1}^2+2 (\text{k1}\cdot \;\text{k2})+\text{k1}\cdot n+\text{k2}^2+i \eta )}
[ex, FCE -> True]
FromGFAD% // InputForm
\frac{1}{(\text{k1}^2+\text{k1}\cdot (2 \;\text{k2}+n)+\text{k2}^2+i \eta )}
[{{k1, k1 . (2*k2 + n) + k2 . k2}, {0, 1}, 1}] SFAD
[ex, FCE -> True, InitialSubstitutions -> {ExpandScalarProduct[SPD[k1 + k2]] -> SPD[k1 + k2]}]
FromGFAD% // InputForm
\frac{1}{((\text{k1}+\text{k2})^2+\text{k1}\cdot n+i \eta )}
[{{k1 + k2, k1 . n}, {0, 1}, 1}] SFAD