View difference between Paste ID: SRUN1kQe and pnA58JSQ
SHOW: | | - or go back to the newest paste.
1
SO(4,2) Casimirs in doubleton representation. In this notebook I am constructing a representation of SO(4,2) or SU(2,2) group using 2 pairs of annihilation/creation operators and then I am computing the Casimir invariants for this group in that representation. If you encounter any Fermion/InveX objects, please ignore them as they are not relevant for this particular representation.
2
3
$HistoryLength = 0;
4
5
Definition of Save and read functions
6
7
SaveIt[filename_, expr_] := 
8
  Module[{output}, 
9
   output = Export[filename <> ".dat", ToString[expr // InputForm], 
10
     "String"];
11
   ClearMemory;
12
   output];
13
SaveIt[varnamestring_] := 
14
  Module[{output}, 
15
   output = Export[varnamestring <> ".dat", 
16
     ToString[ToExpression[varnamestring] // InputForm], "String"];
17
   ClearMemory;
18
   output];
19
ReadIt[filename_] := 
20
  Module[{output}, 
21
   output = ToExpression[
22
     Import[StringReplace[filename, ".dat" -> ""] <> ".dat", "String"]];
23
   ClearMemory;
24
   output];
25
ClearMemory := Module[{}, Unprotect[In, Out];
26
   Clear[In, Out];
27
   Protect[In, Out];
28
   ClearSystemCache[];];
29
30
Definition of Bosonic oscillators
31
32
Clear[Boson, BosonC, BosonA]
33
Boson /: MakeBoxes[Boson[cr : (True | False), sym_], fmt_] := 
34
 With[{sbox = If[StringQ[sym], sym, ToBoxes[sym]]}, 
35
  With[{abox = 
36
     If[cr, SuperscriptBox[#, FormBox["\[Dagger]", Bold]], #] &@sbox}, 
37
   InterpretationBox[abox, Boson[cr, sym]]]]
38
BosonA[sym_: String "a"] := Boson[False, sym]
39
BosonC[sym_: String "a"] := Boson[True, sym]
40
41
Aliasing NonCommutativeMultiply with CenterDot
42
43
CenterDot can be entered by pressing Esc.Esc and this is how the non commuting objects should be multiplied and will be displayed in output.
44
45
Unprotect[NonCommutativeMultiply];
46
Clear[NonCommutativeMultiply, CenterDot];
47
CenterDot[a__] := NonCommutativeMultiply[a];
48
NonCommutativeMultiply /: MakeBoxes[NonCommutativeMultiply[a__], fmt_] := 
49
 With[{cbox = ToBoxes[HoldForm[CenterDot[a]]]}, 
50
  InterpretationBox[cbox, NonCommutativeMultiply[a]]]
51
Protect[NonCommutativeMultiply];
52
Clear[CRule]
53
CRule = {NonCommutativeMultiply[a_] :> a};
54
55
Definition of clean - the function which orders and simplifies expressions
56
57
ClearAll@expand
58-
(*the attribute is new*)
58+
59
SetAttributes[expand, HoldAll]
60
61-
(*equivalent to your code but in my opinion/expectation clearer \
61+
62-
cleaner and slightly faster*)
62+
63
   Block[{NonCommutativeMultiply (*or times*)}, 
64
    expr //. {times[left___, cnum_ /; FreeQ[cnum, (_Boson)], 
65
        right___] :> cnum*times[left, right], 
66
      times[left___, 
67-
    expr /. {times[left___, cnum_ /; FreeQ[cnum, (_Boson)], 
67+
68
        right___] :> 
69
       Times @@ Apply[Power, Drop[FactorList[cnum], -1], 2]*
70
        times[left, First[Last[FactorList[cnum]]], right], 
71
      times[left___, Boson[False, s_], Boson[True, s_], right___] :> 
72
       times[left, right] + 
73
        times[left, Boson[True, s], Boson[False, s], right], 
74
      times[left___, fst : Boson[_, s_], sec : Boson[_, t_], 
75
        right___] :> 
76
       times[left, sec, fst, right] /; 
77
        FreeQ[Ordering[{s, t}], {1, 2}], times[b_Boson] :> b
78
      (*moved and rewrote this rule*), 
79
      times[] -> 1}]] /. {HoldPattern[times] -> NonCommutativeMultiply}
80
expand[Alternatives[NonCommutativeMultiply, CenterDot][
81
   a1_, (a2_ + a3_)]] := expand[a1 ** a2] + expand[a1 ** a3]
82
expand[Alternatives[NonCommutativeMultiply, CenterDot][(a1_ + a2_), 
83
   a3_]] := expand[a1 ** a3] + expand[a2 ** a3]
84
85
Clear[clean]
86
87
clean = Simplify[FixedPoint[expand, Distribute //@ #] //. CRule] &;
88
89
Commutator function
90
91
Clear[CommOp];
92
CommOp[x_, y_] := clean[(x\[CenterDot]y - y\[CenterDot]x)];
93
Clear[ACommOp];
94
ACommOp[x_, y_] := clean[(x\[CenterDot]y + y\[CenterDot]x)];
95
96
Defining the basic variables. 
97
98
Clear[Ad, A, Bd, B, Xd, X, Yd, Y]
99
Clear[\[Psi], \[Chi], \[CapitalGamma], \[CapitalSigma], i, j, k, l, m, n, p, \
100
q, g, T, G, P, Tr1, Tr2, Tr3, Cartan, Comm, Killing, Joseph, Commutator, \
101
Zero, zero, KillComm, KillMet, DoubleTr, GComm, Dim]
102
Dim = 6;
103
Ad = BosonC[a]; A = BosonA[a]; Bd = BosonC[b]; B = BosonA[b]; Xd = 
104
 BosonC[x]; X = BosonA[x]; Yd = BosonC[y]; Y = BosonA[y];
105
106
Defining the algebra.
107
108
Dirac \[CapitalGamma] matrices: 
109
110
\[CapitalGamma][
111
   1] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
112
\[CapitalGamma][
113
   2] = {{0, 0, 0, -1}, {0, 0, -1, 0}, {0, 1, 0, 0}, {1, 0, 0, 0}};
114
\[CapitalGamma][
115
   3] = {{0, 0, 0, I}, {0, 0, -I, 0}, {0, -I, 0, 0}, {I, 0, 0, 0}};
116
\[CapitalGamma][
117
   4] = {{0, 0, -1, 0}, {0, 0, 0, 1}, {1, 0, 0, 0}, {0, -1, 0, 0}};
118
\[CapitalGamma][
119
   5] = {{0, 0, I, 0}, {0, 0, 0, I}, {I, 0, 0, 0}, {0, I, 0, 0}};
120
Zero = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};
121
122
Spinors and metric:
123
124
g = DiagonalMatrix[{-1, 1, 1, 1, 1, -1}];
125
\[Psi] = {{A}, {B}, {-Xd}, {-Yd}};
126
\[Chi] = {{Ad, Bd, X, Y}};   (*This is the Dirac conjugate of \[Psi]*)
127
128
Subscript[\[CapitalGamma], ij] matrices:
129
130
Table[\[CapitalSigma][i, 
131
    j] = -I ( \[CapitalGamma][i].\[CapitalGamma][j] - \[CapitalGamma][
132
         j].\[CapitalGamma][i])/4, {i, 1, 4}, {j, 1, 4}];
133
134
\[CapitalSigma][5, 6] = -\[CapitalGamma][5]/2; \[CapitalSigma][6, 
135
  5] = \[CapitalGamma][5]/2;
136
137
Table[\[CapitalSigma][i, 
138
    5] = -I \[CapitalGamma][i].\[CapitalGamma][5]/2; \[CapitalSigma][5, i] = 
139
   I \[CapitalGamma][i].\[CapitalGamma][5]/2; \[CapitalSigma][i, 
140
    6] = -\[CapitalGamma][i]/2; \[CapitalSigma][6, i] =  \[CapitalGamma][i]/
141
    2, {i, 1, 4}];
142
143
\[CapitalSigma][5, 5] = Zero;
144
\[CapitalSigma][6, 6] = Zero;
145
146
Generators of SO(4,2) denoted by G[i,j]
147
148
Table[G[i, j] = 
149
   Sum[\[CapitalSigma][i, j][[m, 
150
      n]] \[Chi][[1, m]]\[CenterDot]\[Psi][[n, 1]], {m, 1, 4}, {n, 1, 4}], {i,
151
    1, Dim}, {j, 1, Dim}];
152
153
Check the commutation relations of \[CapitalSigma] matrices
154
155
(*Table[Print[i,",",j,",",k,",",l,"=",Simplify[(\[CapitalSigma][i,j].\
156
\[CapitalSigma][k,l]-\[CapitalSigma][k,l].\[CapitalSigma][i,j]+ I( g[[i,k]]\
157
\[CapitalSigma][j,l]-  g[[i,l]]\[CapitalSigma][j,k] -  \
158
g[[j,k]]\[CapitalSigma][i,l] +  \
159
g[[j,l]]\[CapitalSigma][i,k]))]],{i,1,Dim},{j,1,Dim},{k,1,Dim},{l,1,Dim}];*)
160
161
Check the commutation relations of group generators
162
163
(*Table[Print[i,",",j,",",k,",",l,"=",clean[(G[i,j]\[CenterDot]G[k,l]-G[k,l]\
164
\[CenterDot]G[i,j]+ I( g[[i,k]]G[j,l]-  g[[i,l]]G[j,k] -  g[[j,k]]G[i,l] +  \
165
g[[j,l]]G[i,k]))]],{i,1,Dim},{j,1,Dim},{k,1,Dim},{l,1,Dim}];*)
166
167
Generators of SO(3,1) and rest of the conformal generators
168
169
Clear[M, \[Eta], \[CapitalPi], \[CapitalKappa], \[CapitalDelta]] 
170
(*\[CapitalPi] are translations, \[CapitalKappa](this is greek capital K \
171
obtained by esc K esc)are special conformal and \[CapitalDelta] is \
172
dilatations*)
173
174
\[Eta] = DiagonalMatrix[{-1, 1, 1, 1}];
175
Table[M[i, j] = G[i, j], {i, 1, 4}, {j, 1, 4}];
176
Table[\[CapitalKappa][i] = G[i, 6] - G[i, 5], {i, 1, 4}];
177
Table[\[CapitalPi][i] = G[i, 6] + G[i, 5], {i, 1, 4}];
178
\[CapitalDelta] = -G[5, 6];
179
180
Casimirs
181
182
Quadratic Casmir
183
184
Clear[ind1, ind2, ind3, ind4, Cas2, Z]
185
186
Z = Ad\[CenterDot]A + Bd\[CenterDot]B - Xd\[CenterDot]X - Yd\[CenterDot]Y;
187
188
Cas2 = clean[
189
   Sum[g[[ind1, ind3]]\[CenterDot]G[ind3, ind2]\[CenterDot]g[[ind2, 
190
      ind4]]\[CenterDot]G[ind4, ind1], {ind1, 1, 6}, {ind2, 1, 6}, {ind3, 1, 
191
     6}, {ind4, 1, 6}]];
192
clean[Cas2 + (3/2) (Z\[CenterDot]Z - 4)];
193
SaveIt["Cas2"];
194
Cas2sq = clean[Cas2\[CenterDot]Cas2];
195
SaveIt["Cas2sq"];
196
197
Cubic Casmir
198
199
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,cas3]
200
201
Timing[cas3=Sum[g[[ind1,ind4]]g[[ind2,ind5]]g[[ind3,ind6]]G[ind4,ind2]\
202
\[CenterDot]G[ind5,ind3]\[CenterDot]G[ind6,ind1],{ind1,1,6},{ind2,1,6},{ind3,\
203
1,6},{ind4,1,6},{ind5,1,6},{ind6,1,6} ];];
204
Cas3=clean[cas3];
205
SaveIt["Cas3.dat"];
206
clean[Cas3 -2I Cas2];*)
207
208
Quartic Casimir
209
210
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,cas4]
211
212
cas4=Sum[g[[ind1,ind5]]g[[ind2,ind6]]g[[ind3,ind7]]g[[ind4,ind8]]G[ind5,ind2]\
213
\[CenterDot]G[ind6,ind3]\[CenterDot]G[ind7,ind4]\[CenterDot]G[ind8,ind1],{\
214
ind1,1,6},{ind2,1,6},{ind3,1,6},{ind4,1,6},{ind5,1,6},{ind6,1,6},{ind7,1,6},{\
215
ind8,1,6}];
216
Cas4=clean[cas4];
217
SaveIt["Cas4"];
218
clean[Cas4-(1/6) Cas2sq+4 Cas2]*)
219
220
Cas4 = ReadIt["Cas4"];
221
222
clean[Cas4 - (1/6) Cas2sq + 4 Cas2]
223
224
0
225
226
6th order Casimir
227
228
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,ind9,ind10,ind11,ind12,cas6,\
229
Cas6,dim]
230
231
dim=6;
232
233
Timing[cas6=ParallelSum[g[[ind1,ind7]]g[[ind2,ind8]]g[[ind3,ind9]]g[[ind4,\
234
ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[ind7,ind2]\[CenterDot]G[ind8,ind3]\
235
\[CenterDot]G[ind9,ind4]\[CenterDot]G[ind10,ind5]\[CenterDot]G[ind11,ind6]\
236
\[CenterDot]G[ind12,ind1],{ind1,1,dim},{ind2,1,dim},{ind3,1,dim},{ind4,1,dim},\
237
{ind5,1,dim},{ind6,1,dim},{ind7,1,dim},{ind8,1,dim},{ind9,1,dim},{ind10,1,dim}\
238
,{ind11,1,dim},{ind12,1,dim}];]*)
239
240
(*Cas6=clean[cas6];*)
241
242
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,ind9,ind10,ind11,ind12,cas6,\
243
Cas6,dim]
244
245
dim=6;
246
247
AbsoluteTiming[Table[cas6[i,j]=ParallelSum[g[[i,ind7]]g[[j,ind8]]g[[ind3,ind9]\
248
]g[[ind4,ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[ind7,j]\[CenterDot]G[ind8,\
249
ind3]\[CenterDot]G[ind9,ind4]\[CenterDot]G[ind10,ind5]\[CenterDot]G[ind11,\
250
ind6]\[CenterDot]G[ind12,i],{ind3,1,dim},{ind4,1,dim},{ind5,1,dim},{ind6,1,\
251
dim},{ind7,1,dim},{ind8,1,dim},{ind9,1,dim},{ind10,1,dim},{ind11,1,dim},{\
252
ind12,1,dim}],{i,1,dim},{j,1,dim}];]*)
253
254
(*AbsoluteTiming[Table[Cas6[i,j]=clean[cas6[i,j]],{i,1,dim},{j,1,dim}]]*)
255
256
3-3 split
257
258
(*Clear[Cas6133,cas6133]
259
260
Table[cas6133[ind1,ind4]=Sum[g[[ind1,ind7]]g[[ind2,ind8]]g[[ind3,ind9]]G[ind7,\
261
ind2]\[CenterDot]G[ind8,ind3]\[CenterDot]G[ind9,ind4],{ind7,1,6},{ind2,1,6},{\
262
ind8,1,6},{ind3,1,6},{ind9,1,6}],{ind1,1,6},{ind4,1,6}];
263
Table[Cas6133[i,j]=clean[cas6133[i,j]],{i,1,6},{j,1,6}];
264
SaveIt["Cas6133"];*)
265
266
ClearMemory[];
267
268
(*Clear[Cas6233,cas6233]
269
270
Table[cas6233[ind4,ind1]=Sum[g[[ind4,ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[\
271
ind10,ind5]\[CenterDot]G[ind11,ind6]\[CenterDot]G[ind12,ind1],{ind10,1,6},{\
272
ind5,1,6},{ind11,1,6},{ind6,1,6},{ind12,1,6}],{ind4,1,6},{ind1,1,6}];
273
Table[Cas6233[i,j]=clean[cas6233[i,j]],{i,1,6},{j,1,6}];
274
SaveIt["Cas6233"];*)
275
276
ClearMemory[];
277
278
(*Clear[Cas6333,cas6333]
279
280
cas6333=Sum[Cas6133[ind1,ind4]\[CenterDot]Cas6233[ind4,ind1],{ind1,1,6},{ind4,\
281
1,6}];
282
SaveIt["cas6333"];
283
Cas6333=clean[cas6333];
284
SaveIt["Cas6333"];*)
285
286
Clear[Cas2cub]
287
Cas2cub = clean[Cas2\[CenterDot]Cas2sq];
288
SaveIt["Cas2cub"];
289
290
$Aborted
291
292
 (*clean[Cas6333-\[Alpha] Cas2quart]*)
293
294
Cas63 = ReadIt["Cas6333"];
295
Cas2quart = ReadIt["Cas2quart"];
296
297
clean[Cas63 - (1/36) Cas2cub + 2 Cas2sq - 16 Cas2]
298
299
0