1- # ! format: off
21function P_tensor ()
32 P = zeros (ComplexF64, 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 )
43 for (pi1, pj1, pi2, pj2, i1, j1, i2, j2) in Iterators. product ([0 : 1 for _ in 1 : 8 ]. .. )
5- P[pi1+ 1 , pj1+ 1 , pi2+ 1 , pj2+ 1 , i1+ 1 , j1+ 1 , i2+ 1 , j2+ 1 ] =
4+ P[pi1 + 1 , pj1 + 1 , pi2 + 1 , pj2 + 1 , i1 + 1 , j1 + 1 , i2 + 1 , j2 + 1 ] =
65 i1 * (j1 + j2 + pi1 + pi2) + i2 * (j2 + pi1 + pi2) + pj1 * (pi1 + pi2) + pj2 * pi2 + pi1 + pi2
76 end
87 return P
98end
109
11- # Manually defining the A and A_bar tensors
12- A = zeros (ComplexF64, 2 , 2 , 2 , 2 )
13- A[2 , 2 , 1 , 1 ] = 1 + 1im
14- A[1 , 1 , 2 , 2 ] = - 1 - 1im
15- A[2 , 1 , 1 , 2 ] = 1 - 1im
16- A[2 , 1 , 2 , 1 ] = 2
17- A[1 , 2 , 1 , 2 ] = - 2im
18- A[1 , 2 , 2 , 1 ] = 1 - 1im
19-
20- A_bar = zeros (ComplexF64, 2 , 2 , 2 , 2 )
21- A_bar[2 , 2 , 1 , 1 ] = - 1 + 1im
22- A_bar[1 , 1 , 2 , 2 ] = 1 - 1im
23- A_bar[2 , 1 , 1 , 2 ] = - 1 - 1im
24- A_bar[2 , 1 , 2 , 1 ] = - 2
25- A_bar[1 , 2 , 1 , 2 ] = - 2im
26- A_bar[1 , 2 , 2 , 1 ] = - 1 - 1im
27-
2810function gross_neveu_8_leg_tensor (μ:: Number , m:: Number , g:: Number )
11+ # Manually defining the A and A_bar tensors
12+ A = zeros (ComplexF64, 2 , 2 , 2 , 2 )
13+ A[2 , 2 , 1 , 1 ] = 1 + 1im
14+ A[1 , 1 , 2 , 2 ] = - 1 - 1im
15+ A[2 , 1 , 1 , 2 ] = 1 - 1im
16+ A[2 , 1 , 2 , 1 ] = 2
17+ A[1 , 2 , 1 , 2 ] = - 2im
18+ A[1 , 2 , 2 , 1 ] = 1 - 1im
19+
20+ A_bar = zeros (ComplexF64, 2 , 2 , 2 , 2 )
21+ A_bar[2 , 2 , 1 , 1 ] = - 1 + 1im
22+ A_bar[1 , 1 , 2 , 2 ] = 1 - 1im
23+ A_bar[2 , 1 , 1 , 2 ] = - 1 - 1im
24+ A_bar[2 , 1 , 2 , 1 ] = - 2
25+ A_bar[1 , 2 , 1 , 2 ] = - 2im
26+ A_bar[1 , 2 , 2 , 1 ] = - 1 - 1im
27+
2928 # Utility Kronecker delta function
3029 δ (x, y) = == (x, y)
3130
3231 T = zeros (ComplexF64, 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 )
3332 P = P_tensor ()
3433 V = Vect[FermionParity](0 => 1 , 1 => 1 )
3534 for (pi1, pj1, pi2, pj2, i1, j1, i2, j2) in Iterators. product ([0 : 1 for _ in 1 : 8 ]. .. )
36- p = P[pi1+ 1 , pj1+ 1 , pi2+ 1 , pj2+ 1 , i1+ 1 , j1+ 1 , i2+ 1 , j2+ 1 ]
37- T[pi1+ 1 , pj1+ 1 , pi2+ 1 , pj2+ 1 , i2+ 1 , j2+ 1 , i1+ 1 , j1+ 1 ] =
35+ p = P[pi1 + 1 , pj1 + 1 , pi2 + 1 , pj2 + 1 , i1 + 1 , j1 + 1 , i2 + 1 , j2 + 1 ]
36+ T[pi1 + 1 , pj1 + 1 , pi2 + 1 , pj2 + 1 , i2 + 1 , j2 + 1 , i1 + 1 , j1 + 1 ] =
3837 ((- 1 )^ p) * exp (0.5 * μ * (i2 - j2 + pi2 - pj2)) * ((1 / sqrt (2 ))^ (i1 + i2 + j1 + j2 + pi1 + pi2 + pj1 + pj2)) *
39- (((m + 2 )^ 2 + 2 * g^ 2 ) * δ (i1 + i2 + pj1 + pj2, 0 ) * δ (j1 + j2 + pi1 + pi2, 0 ) -
40- (m + 2 ) * δ (i1 + i2 + pj1 + pj2, 1 ) * δ (j1 + j2 + pi1 + pi2, 1 ) -
41- ((- 1 )^ (i1 + i2 + j2 + pi1)) * (1im ^ (i2 + j2 + pi2 + pj2)) * (m + 2 ) * δ (i1 + i2 + pj1 + pj2, 1 ) * δ (j1 + j2 + pi1 + pi2, 1 ) -
42- A_bar[i1+ 1 , i2+ 1 , pj1+ 1 , pj2+ 1 ] * A[j1+ 1 , j2+ 1 , pi1+ 1 , pi2+ 1 ])
38+ (
39+ ((m + 2 )^ 2 + 2 * g^ 2 ) * δ (i1 + i2 + pj1 + pj2, 0 ) * δ (j1 + j2 + pi1 + pi2, 0 ) -
40+ (m + 2 ) * δ (i1 + i2 + pj1 + pj2, 1 ) * δ (j1 + j2 + pi1 + pi2, 1 ) -
41+ ((- 1 )^ (i1 + i2 + j2 + pi1)) * (1im ^ (i2 + j2 + pi2 + pj2)) * (m + 2 ) * δ (i1 + i2 + pj1 + pj2, 1 ) * δ (j1 + j2 + pi1 + pi2, 1 ) -
42+ A_bar[i1 + 1 , i2 + 1 , pj1 + 1 , pj2 + 1 ] * A[j1 + 1 , j2 + 1 , pi1 + 1 , pi2 + 1 ]
43+ )
4344
4445 end
4546 return TensorMap (T, V ⊗ V ⊗ V ⊗ V ← V ⊗ V ⊗ V ⊗ V)
4647end
47- # ! format: on
4848
4949function gross_neveu_start (μ:: Number , m:: Number , g:: Number )
5050 T_unfused = gross_neveu_8_leg_tensor (μ, m, g)
@@ -53,7 +53,7 @@ function gross_neveu_start(μ::Number, m::Number, g::Number)
5353 Udg = adjoint (U)
5454
5555 @tensor T_fused[- 1 - 2 ; - 3 - 4 ] := T_unfused[1 2 3 4 ; 5 6 7 8 ] * U[- 1 ; 1 2 ] * U[- 2 ; 3 4 ] *
56- Udg[5 6 ; - 3 ] * Udg[7 8 ; - 4 ]
56+ Udg[5 6 ; - 3 ] * Udg[7 8 ; - 4 ]
5757
5858 # restore the TNRKit.jl convention
5959 return T_fused
0 commit comments