Skip to content

Commit

Permalink
Improved documentation of FCLoopReplaceQuadraticEikonalPropagators
Browse files Browse the repository at this point in the history
  • Loading branch information
vsht committed Oct 2, 2024
1 parent 53b08d6 commit 7d962d4
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,51 @@ FCLoopReplaceQuadraticEikonalPropagators[topos, LoopMomenta -> {k1, k2},
IntermediateSubstitutions -> {SPD[n] -> 0, SPD[nb] -> 0, SPD[n, nb] -> 0}]
```

$$\left\{\text{FCTopology}\left(\text{preTopoDia1},\left\{\frac{1}{(\text{k2}^2+i \eta )},\frac{1}{(\text{k1}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k2}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\}$$
$$\left\{\text{FCTopology}\left(\text{preTopoDia1},\left\{\frac{1}{(\text{k2}^2+i \eta )},\frac{1}{(\text{k1}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k2}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\}$$

Notice that the ordering of scalar products in the `InitialSubstitutions` option is important. It is recommended to put the longest and most complicated rules
first and all simpler rules thereafter. Otherwise, it might happen that a simple rule will be first applied to a complicated expression making it impossible
to apply the actually needed complicated rule later on. For example, this fails, because the most complicated rule containing 3 loop momenta comes last

```mathematica
testTopo = FCTopology["topology1230", {SFAD[{{k3, 0}, {0, 1}, 1}], SFAD[{{0, -k2 . nb}, {0, 1}, 1}],
SFAD[{{k1, -(meta*u0b*k1 . nb)}, {0, 1}, 1}], SFAD[{{k1, -2*gkin*meta*u0b*k1 . n}, {0, 1}, 1}],
SFAD[{{0, -(k1 + k2) . nb}, {-2*gkin*meta*u0b, 1}, 1}], SFAD[{{k1 + k2, -2*gkin*meta*u0b*(k1 + k2) . n}, {0, 1}, 1}],
SFAD[{{k2, -2*gkin*meta*k2 . n + meta*u0b*k2 . nb}, {2*gkin*meta^2*u0b, 1}, 1}],
SFAD[{{k1 + k2, -2*gkin*meta*u0b*(k1 + k2) . n + k3 . (-2*k1 - 2*k2 + k3) + 2*gkin*meta*u0b*k3 . n}, {0, 1}, 1}],
SFAD[{{0, (k1 - k3) . nb}, {0, 1}, 1}],
SFAD[{{k1, meta*u0b*(k1 - k3) . nb + k3 . (-2*k1 + k3)}, {0, 1}, 1}], SFAD[{{k1, 2*gkin*meta*k1 . n + k3 . (-2*k1 + k3) - 2*gkin*meta*k3 . n}, {0, 1}, 1}],
SFAD[{{k1 - k2, 0}, {0, 1}, 1}]}, {k1, k2, k3}, {n, nb}, {Hold[SPD][n] -> 0, Hold[SPD][nb] -> 0, Hold[SPD][n, nb] -> 2}, {}]
```

$$\text{FCTopology}\left(\text{topology1230},\left\{\frac{1}{(\text{k3}^2+i \eta )},\frac{1}{(-\text{k2}\cdot \;\text{nb}+i \eta )},\frac{1}{(\text{k1}^2-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+i \eta )},\frac{1}{(\text{k1}^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)+i \eta )},\frac{1}{(-(\text{k1}+\text{k2})\cdot \;\text{nb}+2 \;\text{gkin} \;\text{meta} \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} ((\text{k1}+\text{k2})\cdot n)+i \eta )},\frac{1}{(\text{k2}^2+\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})-2 \;\text{gkin} \;\text{meta} (\text{k2}\cdot n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+-2 \;\text{gkin} \;\text{meta} \;\text{u0b} ((\text{k1}+\text{k2})\cdot n)+\text{k3}\cdot (-2 \;\text{k1}-2 \;\text{k2}+\text{k3})+2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k3}\cdot n)+i \eta )},\frac{1}{((\text{k1}-\text{k3})\cdot \;\text{nb}+i \eta )},\frac{1}{(\text{k1}^2+\text{meta} \;\text{u0b} ((\text{k1}-\text{k3})\cdot \;\text{nb})+\text{k3}\cdot (\text{k3}-2 \;\text{k1})+i \eta )},\frac{1}{(\text{k1}^2+2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)+\text{k3}\cdot (\text{k3}-2 \;\text{k1})-2 \;\text{gkin} \;\text{meta} (\text{k3}\cdot n)+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+i \eta )}\right\},\{\text{k1},\text{k2},\text{k3}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)$$

```mathematica
FCLoopReplaceQuadraticEikonalPropagators[testTopo, LoopMomenta -> {k1, k2, k3}, InitialSubstitutions -> {
ExpandScalarProduct[SPD[k2 - k3]] -> SPD[k2 - k3], ExpandScalarProduct[SPD[k1 - k3]] -> SPD[k1 - k3],
ExpandScalarProduct[SPD[k1 + k3]] -> SPD[k1 + k3],
ExpandScalarProduct[SPD[k1 + k2]] -> SPD[k1 + k2],
ExpandScalarProduct[SPD[k1 + k2 - k3]] -> SPD[k1 + k2 - k3]
}, IntermediateSubstitutions -> {SPD[n] -> 0, SPD[nb] -> 0, SPD[n, nb] -> 0}]
```

$$\text{FromGFAD: }\;\text{Some of the converted propagators are not strictly quadratic or eikonal.}$$

$$\text{FromGFAD: }\left\{\frac{1}{(\text{k1}^2+2 (\text{k1}\cdot \;\text{k2})-2 (\text{k1}\cdot \;\text{k3})+\text{k2}^2-2 (\text{k2}\cdot \;\text{k3})+\text{k3}^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n+\text{k2}\cdot n-\text{k3}\cdot n)+i \eta )}\right\}$$

$$\text{FromGFAD: }\;\text{These propagators may later cause issues with topology minimization routines.}$$

$$\left\{\text{FCTopology}\left(\text{topology1230},\left\{\frac{1}{(\text{k3}^2+i \eta )},\frac{1}{(-\text{k2}\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k1}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{(-(\text{k1}+\text{k2})\cdot \;\text{nb}+2 \;\text{gkin} \;\text{meta} \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k2}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k1}^2+2 (\text{k1}\cdot \;\text{k2})-2 (\text{k1}\cdot \;\text{k3})+\text{k2}^2-2 (\text{k2}\cdot \;\text{k3})+\text{k3}^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n+\text{k2}\cdot n-\text{k3}\cdot n)+i \eta )},\frac{1}{((\text{k1}-\text{k3})\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k1}-\text{k3}+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{k3}+\text{gkin} \;\text{meta} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+i \eta )}\right\},\{\text{k1},\text{k2},\text{k3}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\}$$

Rearranging the rules accordingly, we can make the conversion succeed

```mathematica
FCLoopReplaceQuadraticEikonalPropagators[testTopo, LoopMomenta -> {k1, k2, k3}, InitialSubstitutions -> {
ExpandScalarProduct[SPD[k1 + k2 - k3]] -> SPD[k1 + k2 - k3],
ExpandScalarProduct[SPD[k2 - k3]] -> SPD[k2 - k3], ExpandScalarProduct[SPD[k1 - k3]] -> SPD[k1 - k3],
ExpandScalarProduct[SPD[k1 + k3]] -> SPD[k1 + k3],
ExpandScalarProduct[SPD[k1 + k2]] -> SPD[k1 + k2]
}, IntermediateSubstitutions -> {SPD[n] -> 0, SPD[nb] -> 0, SPD[n, nb] -> 0}]
```

$$\left\{\text{FCTopology}\left(\text{topology1230},\left\{\frac{1}{(\text{k3}^2+i \eta )},\frac{1}{(-\text{k2}\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k1}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{(-(\text{k1}+\text{k2})\cdot \;\text{nb}+2 \;\text{gkin} \;\text{meta} \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k2}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{k3}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{k3})\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k1}-\text{k3}+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{k3}+\text{gkin} \;\text{meta} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+i \eta )}\right\},\{\text{k1},\text{k2},\text{k3}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\}$$
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@


topos={FCTopology[preTopoDia1,{SFAD[{{k2,0},{0,1},1}],SFAD[{{k1,0},{0,1},1}],
SFAD[{{k1+k2,0},{0,1},1}],SFAD[{{0,-k1.nb},{0,1},1}],SFAD[{{k2,-(meta*u0b*k2.nb)},{0,1},1}],
SFAD[{{k1+k2,-2*gkin*meta*u0b*(k1+k2).n},{0,1},1}],SFAD[{{k1,-2*gkin*meta*k1.n+meta*u0b*k1.nb},
{2*gkin*meta^2*u0b,1},1}],SFAD[{{k1,-2*gkin*meta*u0b*k1.n+meta*u0b*k1.nb},{2*gkin*meta^2*u0b^2,1},1}]},
SFAD[{{k1+k2,0},{0,1},1}],SFAD[{{0,-k1 . nb},{0,1},1}],SFAD[{{k2,-(meta*u0b*k2 . nb)},{0,1},1}],
SFAD[{{k1+k2,-2*gkin*meta*u0b*(k1+k2) . n},{0,1},1}],SFAD[{{k1,-2*gkin*meta*k1 . n+meta*u0b*k1 . nb},
{2*gkin*meta^2*u0b,1},1}],SFAD[{{k1,-2*gkin*meta*u0b*k1 . n+meta*u0b*k1 . nb},{2*gkin*meta^2*u0b^2,1},1}]},
{k1,k2},{n,nb},{Hold[SPD][n]->0,Hold[SPD][nb]->0,Hold[SPD][n,nb]->2},{}]}


Expand All @@ -47,3 +47,39 @@
ExpandScalarProduct[SPD[k1-k2]]->SPD[k1-k2],
ExpandScalarProduct[SPD[k1+k2]]->SPD[k1+k2]},
IntermediateSubstitutions->{SPD[n]->0,SPD[nb]->0,SPD[n,nb]->0}]


(* ::Text:: *)
(*Notice that the ordering of scalar products in the `InitialSubstitutions` option is important. It is recommended to put the longest and most complicated rules*)
(*first and all simpler rules thereafter. Otherwise, it might happen that a simple rule will be first applied to a complicated expression making it impossible*)
(*to apply the actually needed complicated rule later on. For example, this fails, because the most complicated rule containing 3 loop momenta comes last*)


testTopo=FCTopology["topology1230", {SFAD[{{k3, 0}, {0, 1}, 1}], SFAD[{{0, -k2 . nb}, {0, 1}, 1}],
SFAD[{{k1, -(meta*u0b*k1 . nb)}, {0, 1}, 1}], SFAD[{{k1, -2*gkin*meta*u0b*k1 . n}, {0, 1}, 1}],
SFAD[{{0, -(k1 + k2) . nb}, {-2*gkin*meta*u0b, 1}, 1}], SFAD[{{k1 + k2, -2*gkin*meta*u0b*(k1 + k2) . n}, {0, 1}, 1}],
SFAD[{{k2, -2*gkin*meta*k2 . n + meta*u0b*k2 . nb}, {2*gkin*meta^2*u0b, 1}, 1}],
SFAD[{{k1 + k2, -2*gkin*meta*u0b*(k1 + k2) . n + k3 . (-2*k1 - 2*k2 + k3) + 2*gkin*meta*u0b*k3 . n}, {0, 1}, 1}],
SFAD[{{0, (k1 - k3) . nb}, {0, 1}, 1}],
SFAD[{{k1, meta*u0b*(k1 - k3) . nb + k3 . (-2*k1 + k3)}, {0, 1}, 1}], SFAD[{{k1, 2*gkin*meta*k1 . n + k3 . (-2*k1 + k3) - 2*gkin*meta*k3 . n}, {0, 1}, 1}],
SFAD[{{k1 - k2, 0}, {0, 1}, 1}]}, {k1, k2, k3}, {n, nb}, {Hold[SPD][n] -> 0, Hold[SPD][nb] -> 0, Hold[SPD][n, nb] -> 2}, {}]


FCLoopReplaceQuadraticEikonalPropagators[testTopo,LoopMomenta->{k1,k2,k3},InitialSubstitutions->{
ExpandScalarProduct[SPD[k2-k3]]->SPD[k2-k3],ExpandScalarProduct[SPD[k1-k3]]->SPD[k1-k3],
ExpandScalarProduct[SPD[k1+k3]]->SPD[k1+k3],
ExpandScalarProduct[SPD[k1+k2]]->SPD[k1+k2],
ExpandScalarProduct[SPD[k1+k2-k3]]->SPD[k1+k2-k3]
},IntermediateSubstitutions->{SPD[n]->0,SPD[nb]->0,SPD[n,nb]->0}]


(* ::Text:: *)
(*Rearranging the rules accordingly, we can make the conversion succeed*)


FCLoopReplaceQuadraticEikonalPropagators[testTopo,LoopMomenta->{k1,k2,k3},InitialSubstitutions->{
ExpandScalarProduct[SPD[k1+k2-k3]]->SPD[k1+k2-k3],
ExpandScalarProduct[SPD[k2-k3]]->SPD[k2-k3],ExpandScalarProduct[SPD[k1-k3]]->SPD[k1-k3],
ExpandScalarProduct[SPD[k1+k3]]->SPD[k1+k3],
ExpandScalarProduct[SPD[k1+k2]]->SPD[k1+k2]
},IntermediateSubstitutions->{SPD[n]->0,SPD[nb]->0,SPD[n,nb]->0}]

0 comments on commit 7d962d4

Please sign in to comment.