View difference between Paste ID: pnA58JSQ and 9zNtaZmU
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-
Definition of Inverse X operators (*These objects are not needed for this particular computation*)
41+
42
43-
Clear[InveX]
43+
44-
InveX /: MakeBoxes[InveX[pow : _Integer, sym_], fmt_] := 
44+
45
Unprotect[NonCommutativeMultiply];
46-
  With[{abox = FractionBox[1, SuperscriptBox[#, pow]] &@sbox}, 
46+
47-
   InterpretationBox[abox, InveX[pow, sym]]]]
47+
48
NonCommutativeMultiply /: MakeBoxes[NonCommutativeMultiply[a__], fmt_] := 
49-
Definition of Operators (*These objects are not needed for this particular computation*)
49+
50
  InterpretationBox[cbox, NonCommutativeMultiply[a]]]
51-
Clear[Operator]
51+
52-
Operator /: MakeBoxes[Operator[sym_], fmt_] := 
52+
53-
 With[{abox = ToBoxes[sym]}, InterpretationBox[abox, Operator[sym]]]
53+
54
55
Definition of clean - the function which orders and simplifies expressions
56
57
ClearAll@expand
58
(*the attribute is new*)
59
SetAttributes[expand, HoldAll]
60
61
(*equivalent to your code but in my opinion/expectation clearer \
62
cleaner and slightly faster*)
63
64
Unevaluated[
65
  expand[expr_] := 
66
   Block[{NonCommutativeMultiply (*or times*)}, 
67
    expr /. {times[left___, cnum_ /; FreeQ[cnum, (_Boson)], 
68
        right___] :> cnum*times[left, right], 
69
      times[left___, 
70
        cnum_ /; (! FreeQ[cnum, Times[n___?NumericQ, ___Boson]]), 
71
        right___] :> 
72-
Clear[expand, deriv, clean]
72+
       Times @@ Apply[Power, Drop[FactorList[cnum], -1], 2]*
73
        times[left, First[Last[FactorList[cnum]]], right], 
74-
deriv[InveX[pow_, s_], s_] := -pow*InveX[pow + 1, s]
74+
      times[left___, Boson[False, s_], Boson[True, s_], right___] :> 
75
       times[left, right] + 
76-
expand[expr_] := 
76+
        times[left, Boson[True, s], Boson[False, s], right], 
77-
  Module[{times}, 
77+
      times[left___, fst : Boson[_, s_], sec : Boson[_, t_], 
78-
   expr /. NonCommutativeMultiply[b___] :> 
78+
        right___] :> 
79-
        times[b] //. {times[left___, 
79+
       times[left, sec, fst, right] /; 
80-
         cnum_ /; FreeQ[cnum, (_Boson | _InveX | _Fermion | _Operator)], 
80+
        FreeQ[Ordering[{s, t}], {1, 2}], times[b_Boson] :> b
81-
         right___] :> cnum*times[left, right],  
81+
      (*moved and rewrote this rule*), 
82-
       times[left___, 
82+
      times[] -> 1}]] /. {HoldPattern[times] -> NonCommutativeMultiply}
83-
         cnum_ /; (! FreeQ[cnum, Times[n___?NumericQ, ___Boson]]), 
83+
expand[Alternatives[NonCommutativeMultiply, CenterDot][
84-
         right___] :> 
84+
   a1_, (a2_ + a3_)]] := expand[a1 ** a2] + expand[a1 ** a3]
85-
        Times @@ Apply[Power, Drop[FactorList[cnum], -1], 2]*
85+
expand[Alternatives[NonCommutativeMultiply, CenterDot][(a1_ + a2_), 
86-
         times[left, First[Last[FactorList[cnum]]], right], 
86+
   a3_]] := expand[a1 ** a3] + expand[a2 ** a3]
87-
       times[left___, fst : Fermion[_, s_], sec : Boson[_, t_], right___] :> 
87+
88-
        times[left, sec, fst, right], 
88+
Clear[clean]
89-
       times[left___, Boson[False, s_], Boson[True, s_], right___] :> 
89+
90-
        times[left, right] + 
90+
91-
         times[left, Boson[True, s], Boson[False, s], right],
91+
92-
       times[left___, fst : Boson[_, s_], sec : Boson[_, t_], right___] :> 
92+
93-
        times[left, sec, fst, right] /; 
93+
94-
         FreeQ[Ordering[{s, t}], {1, 2}],
94+
95-
       times[b_Boson] :> b} /. times[arg__] :> NonCommutativeMultiply[arg] /. times[] -> 1];
95+
96-
expand /: expand[a1_\[CenterDot](a2_ + a3_)] := 
96+
97-
 expand[a1\[CenterDot]a2] + expand[a1\[CenterDot]a3]
97+
98-
expand /: expand[(a1_ + a2_)\[CenterDot]a3_] := 
98+
99-
 expand[a1\[CenterDot]a3] + expand[a2\[CenterDot]a3]
99+
100-
expand /: expand[InveX[pow1_, s_]\[CenterDot]InveX[pow2_, s_]] := 
100+
101-
 expand[InveX[pow1 + pow2, s]]
101+
102
Clear[\[Psi], \[Chi], \[CapitalGamma], \[CapitalSigma], i, j, k, l, m, n, p, \
103
q, g, T, G, P, Tr1, Tr2, Tr3, Cartan, Comm, Killing, Joseph, Commutator, \
104
Zero, zero, KillComm, KillMet, DoubleTr, GComm, Dim]
105
Dim = 6;
106
Ad = BosonC[a]; A = BosonA[a]; Bd = BosonC[b]; B = BosonA[b]; Xd = 
107
 BosonC[x]; X = BosonA[x]; Yd = BosonC[y]; Y = BosonA[y];
108
109
Defining the algebra.
110
111
Dirac \[CapitalGamma] matrices: 
112
113
\[CapitalGamma][
114
   1] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
115
\[CapitalGamma][
116
   2] = {{0, 0, 0, -1}, {0, 0, -1, 0}, {0, 1, 0, 0}, {1, 0, 0, 0}};
117
\[CapitalGamma][
118
   3] = {{0, 0, 0, I}, {0, 0, -I, 0}, {0, -I, 0, 0}, {I, 0, 0, 0}};
119
\[CapitalGamma][
120
   4] = {{0, 0, -1, 0}, {0, 0, 0, 1}, {1, 0, 0, 0}, {0, -1, 0, 0}};
121
\[CapitalGamma][
122
   5] = {{0, 0, I, 0}, {0, 0, 0, I}, {I, 0, 0, 0}, {0, I, 0, 0}};
123
Zero = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};
124
125
Spinors and metric:
126
127
g = DiagonalMatrix[{-1, 1, 1, 1, 1, -1}];
128
\[Psi] = {{A}, {B}, {-Xd}, {-Yd}};
129
\[Chi] = {{Ad, Bd, X, Y}};   (*This is the Dirac conjugate of \[Psi]*)
130
131
Subscript[\[CapitalGamma], ij] matrices:
132
133
Table[\[CapitalSigma][i, 
134
    j] = -I ( \[CapitalGamma][i].\[CapitalGamma][j] - \[CapitalGamma][
135
         j].\[CapitalGamma][i])/4, {i, 1, 4}, {j, 1, 4}];
136
137
\[CapitalSigma][5, 6] = -\[CapitalGamma][5]/2; \[CapitalSigma][6, 
138
  5] = \[CapitalGamma][5]/2;
139
140
Table[\[CapitalSigma][i, 
141
    5] = -I \[CapitalGamma][i].\[CapitalGamma][5]/2; \[CapitalSigma][5, i] = 
142
   I \[CapitalGamma][i].\[CapitalGamma][5]/2; \[CapitalSigma][i, 
143
    6] = -\[CapitalGamma][i]/2; \[CapitalSigma][6, i] =  \[CapitalGamma][i]/
144
    2, {i, 1, 4}];
145
146
\[CapitalSigma][5, 5] = Zero;
147
\[CapitalSigma][6, 6] = Zero;
148
149
Generators of SO(4,2) denoted by G[i,j]
150
151
Table[G[i, j] = 
152
   Sum[\[CapitalSigma][i, j][[m, 
153
      n]] \[Chi][[1, m]]\[CenterDot]\[Psi][[n, 1]], {m, 1, 4}, {n, 1, 4}], {i,
154
    1, Dim}, {j, 1, Dim}];
155
156
Check the commutation relations of \[CapitalSigma] matrices
157
158
(*Table[Print[i,",",j,",",k,",",l,"=",Simplify[(\[CapitalSigma][i,j].\
159
\[CapitalSigma][k,l]-\[CapitalSigma][k,l].\[CapitalSigma][i,j]+ I( g[[i,k]]\
160
\[CapitalSigma][j,l]-  g[[i,l]]\[CapitalSigma][j,k] -  \
161
g[[j,k]]\[CapitalSigma][i,l] +  \
162
g[[j,l]]\[CapitalSigma][i,k]))]],{i,1,Dim},{j,1,Dim},{k,1,Dim},{l,1,Dim}];*)
163
164
Check the commutation relations of group generators
165
166
(*Table[Print[i,",",j,",",k,",",l,"=",clean[(G[i,j]\[CenterDot]G[k,l]-G[k,l]\
167
\[CenterDot]G[i,j]+ I( g[[i,k]]G[j,l]-  g[[i,l]]G[j,k] -  g[[j,k]]G[i,l] +  \
168
g[[j,l]]G[i,k]))]],{i,1,Dim},{j,1,Dim},{k,1,Dim},{l,1,Dim}];*)
169
170
Generators of SO(3,1) and rest of the conformal generators
171
172
Clear[M, \[Eta], \[CapitalPi], \[CapitalKappa], \[CapitalDelta]] 
173
(*\[CapitalPi] are translations, \[CapitalKappa](this is greek capital K \
174
obtained by esc K esc)are special conformal and \[CapitalDelta] is \
175
dilatations*)
176
177
\[Eta] = DiagonalMatrix[{-1, 1, 1, 1}];
178
Table[M[i, j] = G[i, j], {i, 1, 4}, {j, 1, 4}];
179
Table[\[CapitalKappa][i] = G[i, 6] - G[i, 5], {i, 1, 4}];
180
Table[\[CapitalPi][i] = G[i, 6] + G[i, 5], {i, 1, 4}];
181
\[CapitalDelta] = -G[5, 6];
182
183
Casimirs
184
185
Quadratic Casmir
186
187
Clear[ind1, ind2, ind3, ind4, Cas2, Z]
188
189
Z = Ad\[CenterDot]A + Bd\[CenterDot]B - Xd\[CenterDot]X - Yd\[CenterDot]Y;
190
191
Cas2 = clean[
192
   Sum[g[[ind1, ind3]]\[CenterDot]G[ind3, ind2]\[CenterDot]g[[ind2, 
193
      ind4]]\[CenterDot]G[ind4, ind1], {ind1, 1, 6}, {ind2, 1, 6}, {ind3, 1, 
194
     6}, {ind4, 1, 6}]];
195
clean[Cas2 + (3/2) (Z\[CenterDot]Z - 4)];
196
SaveIt["Cas2"];
197
Cas2sq = clean[Cas2\[CenterDot]Cas2];
198
SaveIt["Cas2sq"];
199
200
Cubic Casmir
201
202
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,cas3]
203
204
Timing[cas3=Sum[g[[ind1,ind4]]g[[ind2,ind5]]g[[ind3,ind6]]G[ind4,ind2]\
205
\[CenterDot]G[ind5,ind3]\[CenterDot]G[ind6,ind1],{ind1,1,6},{ind2,1,6},{ind3,\
206
1,6},{ind4,1,6},{ind5,1,6},{ind6,1,6} ];];
207
Cas3=clean[cas3];
208
SaveIt["Cas3.dat"];
209
clean[Cas3 -2I Cas2];*)
210
211
Quartic Casimir
212
213
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,cas4]
214
215
cas4=Sum[g[[ind1,ind5]]g[[ind2,ind6]]g[[ind3,ind7]]g[[ind4,ind8]]G[ind5,ind2]\
216
\[CenterDot]G[ind6,ind3]\[CenterDot]G[ind7,ind4]\[CenterDot]G[ind8,ind1],{\
217
ind1,1,6},{ind2,1,6},{ind3,1,6},{ind4,1,6},{ind5,1,6},{ind6,1,6},{ind7,1,6},{\
218
ind8,1,6}];
219
Cas4=clean[cas4];
220
SaveIt["Cas4"];
221
clean[Cas4-(1/6) Cas2sq+4 Cas2]*)
222
223
Cas4 = ReadIt["Cas4"];
224
225
clean[Cas4 - (1/6) Cas2sq + 4 Cas2]
226
227
0
228
229
6th order Casimir
230
231
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,ind9,ind10,ind11,ind12,cas6,\
232
Cas6,dim]
233
234
dim=6;
235
236
Timing[cas6=ParallelSum[g[[ind1,ind7]]g[[ind2,ind8]]g[[ind3,ind9]]g[[ind4,\
237
ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[ind7,ind2]\[CenterDot]G[ind8,ind3]\
238
\[CenterDot]G[ind9,ind4]\[CenterDot]G[ind10,ind5]\[CenterDot]G[ind11,ind6]\
239
\[CenterDot]G[ind12,ind1],{ind1,1,dim},{ind2,1,dim},{ind3,1,dim},{ind4,1,dim},\
240
{ind5,1,dim},{ind6,1,dim},{ind7,1,dim},{ind8,1,dim},{ind9,1,dim},{ind10,1,dim}\
241
,{ind11,1,dim},{ind12,1,dim}];]*)
242
243
(*Cas6=clean[cas6];*)
244
245
(*Clear[ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8,ind9,ind10,ind11,ind12,cas6,\
246
Cas6,dim]
247
248
dim=6;
249
250
AbsoluteTiming[Table[cas6[i,j]=ParallelSum[g[[i,ind7]]g[[j,ind8]]g[[ind3,ind9]\
251
]g[[ind4,ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[ind7,j]\[CenterDot]G[ind8,\
252
ind3]\[CenterDot]G[ind9,ind4]\[CenterDot]G[ind10,ind5]\[CenterDot]G[ind11,\
253
ind6]\[CenterDot]G[ind12,i],{ind3,1,dim},{ind4,1,dim},{ind5,1,dim},{ind6,1,\
254
dim},{ind7,1,dim},{ind8,1,dim},{ind9,1,dim},{ind10,1,dim},{ind11,1,dim},{\
255
ind12,1,dim}],{i,1,dim},{j,1,dim}];]*)
256
257
(*AbsoluteTiming[Table[Cas6[i,j]=clean[cas6[i,j]],{i,1,dim},{j,1,dim}]]*)
258
259
3-3 split
260
261
(*Clear[Cas6133,cas6133]
262
263
Table[cas6133[ind1,ind4]=Sum[g[[ind1,ind7]]g[[ind2,ind8]]g[[ind3,ind9]]G[ind7,\
264
ind2]\[CenterDot]G[ind8,ind3]\[CenterDot]G[ind9,ind4],{ind7,1,6},{ind2,1,6},{\
265
ind8,1,6},{ind3,1,6},{ind9,1,6}],{ind1,1,6},{ind4,1,6}];
266
Table[Cas6133[i,j]=clean[cas6133[i,j]],{i,1,6},{j,1,6}];
267
SaveIt["Cas6133"];*)
268
269
ClearMemory[];
270
271
(*Clear[Cas6233,cas6233]
272
273
Table[cas6233[ind4,ind1]=Sum[g[[ind4,ind10]]g[[ind5,ind11]]g[[ind6,ind12]]G[\
274
ind10,ind5]\[CenterDot]G[ind11,ind6]\[CenterDot]G[ind12,ind1],{ind10,1,6},{\
275
ind5,1,6},{ind11,1,6},{ind6,1,6},{ind12,1,6}],{ind4,1,6},{ind1,1,6}];
276
Table[Cas6233[i,j]=clean[cas6233[i,j]],{i,1,6},{j,1,6}];
277
SaveIt["Cas6233"];*)
278
279
ClearMemory[];
280
281
(*Clear[Cas6333,cas6333]
282
283
cas6333=Sum[Cas6133[ind1,ind4]\[CenterDot]Cas6233[ind4,ind1],{ind1,1,6},{ind4,\
284
1,6}];
285
SaveIt["cas6333"];
286
Cas6333=clean[cas6333];
287
SaveIt["Cas6333"];*)
288
289
Clear[Cas2cub]
290
Cas2cub = clean[Cas2\[CenterDot]Cas2sq];
291
SaveIt["Cas2cub"];
292
293
$Aborted
294
295
 (*clean[Cas6333-\[Alpha] Cas2quart]*)
296
297
Cas63 = ReadIt["Cas6333"];
298
Cas2quart = ReadIt["Cas2quart"];
299
300
clean[Cas63 - (1/36) Cas2cub + 2 Cas2sq - 16 Cas2]
301
302
0