FCLoopFindTopologies[exp, {q1, q2, ...}]
attempts to identify the loop integral topologies present in exp
by looking at the propagator denominators that depend on the loop momenta q1, q2, ...
. It returns a list of two entries, where the first one is the original expression with the denominators rewritten as GLI
s, and the second one is the set of the identified topologies.
Each of the identified topologies must contain linearly independent propagators (unless the option FCLoopBasisOverdeterminedQ
is set to True), but may lack propagators needed to form a complete basis.
Scaleless topologies are automatically removed, but this can be disabled by setting the option FCLoopScalelessQ
to True
.
Find topologies occurring in the 2-loop ghost self-energy amplitude
= Get[FileNameJoin[{$FeynCalcDirectory, "Documentation", "Examples",
amp "Amplitudes", "Gh-Gh-2L.m"}]];
= FCLoopFindTopologies[amp, {q1, q2}]; res
\text{Number of the initial candidate topologies: }3
\text{Number of the identified unique topologies: }3
\text{Number of the preferred topologies among the unique topologies: }0
\text{Number of the identified subtopologies: }0
// Last res
\left\{\text{FCTopology}\left(\text{fctopology1},\left\{\frac{1}{(\text{q2}^2+i \eta )},\frac{1}{(\text{q1}^2+i \eta )},\frac{1}{((\text{q1}+\text{q2})^2+i \eta )},\frac{1}{((p+\text{q1})^2+i \eta )},\frac{1}{((p-\text{q2})^2+i \eta )}\right\},\{\text{q1},\text{q2}\},\{p\},\{\},\{\}\right),\text{FCTopology}\left(\text{fctopology2},\left\{\frac{1}{(\text{q2}^2+i \eta )},\frac{1}{(\text{q1}^2+i \eta )},\frac{1}{((p+\text{q2})^2+i \eta )},\frac{1}{((p-\text{q1})^2+i \eta )}\right\},\{\text{q1},\text{q2}\},\{p\},\{\},\{\}\right),\text{FCTopology}\left(\text{fctopology3},\left\{\frac{1}{(\text{q2}^2+i \eta )},\frac{1}{(\text{q1}^2+i \eta )},\frac{1}{((p-\text{q1})^2+i \eta )},\frac{1}{((p-\text{q1}+\text{q2})^2+i \eta )}\right\},\{\text{q1},\text{q2}\},\{p\},\{\},\{\}\right)\right\}
Find topologies occurring in the 2-loop QCD corrections to the B_s-meson mixing
= Get[FileNameJoin[{$FeynCalcDirectory, "Documentation", "Examples",
topos "Topologies", "BMixingTopos2L.m"}]];
// Length topos
544
= FCLoopFindTopologies[topos, {k1, k2}]; res
\text{Number of the initial candidate topologies: }18
\text{Number of the identified unique topologies: }18
\text{Number of the preferred topologies among the unique topologies: }0
\text{Number of the identified subtopologies: }0
Show the first two topologies
// Last)[[1 ;; 2]] (res
\left\{\text{FCTopology}\left(\text{fctopology1},\left\{\frac{1}{((\text{k2}+\text{p1})^2+i \eta )},\frac{1}{(\text{k2}^2-\text{mb}^2+i \eta )},\frac{1}{(\text{k1}^2-\text{mc}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-\text{mc}^2+i \eta )},\frac{1}{((\text{k1}-\text{p1})^2-\text{mc}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{\text{p1}\},\{\},\{\}\right),\text{FCTopology}\left(\text{fctopology2},\left\{\frac{1}{((\text{k2}-\text{p1})^2+i \eta )},\frac{1}{(\text{k2}^2-\text{mb}^2+i \eta )},\frac{1}{(\text{k1}^2-\text{mc}^2+i \eta )},\frac{1}{((\text{k1}+\text{p1})^2-\text{mc}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-\text{mc}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{\text{p1}\},\{\},\{\}\right)\right\}
In practical calculations even the simple extraction of topologies from the given list of diagrams can take considerable amount of time. This is why it is better to parallelize this process as much as possible.
We can split this part into two steps, were we first apply FCLoopIsolate
to the resulting amplitudes and then pass the output to FCLoopFindTopologies
. To avoid the unnecessary application of FCLoopIsolate
during this step, we should specify the head with which the topologies have been wrapped via the option FCLoopIsolate
.
= FCLoopIsolate[topos[[44 ;; 48]], {k1, k2}, Collecting -> False, Factoring -> False, Numerator -> False, Head -> loopDen]; isolatedTopos
= FCLoopFindTopologies[isolatedTopos, {k1, k2}, FCLoopIsolate -> loopDen, Head -> ampDen, Collecting -> False];
res
\text{Number of the initial candidate topologies: }2
\text{Number of the identified unique topologies: }2
\text{Number of the preferred topologies among the unique topologies: }0
\text{Number of the identified subtopologies: }0