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 |