Advertisement
Guest User

SO(4,2)-doubleton-Casimirs

a guest
Jan 6th, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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*)
  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. Times @@ Apply[Power, Drop[FactorList[cnum], -1], 2]*
  73. times[left, First[Last[FactorList[cnum]]], right],
  74. times[left___, Boson[False, s_], Boson[True, s_], right___] :>
  75. times[left, right] +
  76. times[left, Boson[True, s], Boson[False, s], right],
  77. times[left___, fst : Boson[_, s_], sec : Boson[_, t_],
  78. right___] :>
  79. times[left, sec, fst, right] /;
  80. FreeQ[Ordering[{s, t}], {1, 2}], times[b_Boson] :> b
  81. (*moved and rewrote this rule*),
  82. times[] -> 1}]] /. {HoldPattern[times] -> NonCommutativeMultiply}
  83. expand[Alternatives[NonCommutativeMultiply, CenterDot][
  84. a1_, (a2_ + a3_)]] := expand[a1 ** a2] + expand[a1 ** a3]
  85. expand[Alternatives[NonCommutativeMultiply, CenterDot][(a1_ + a2_),
  86. a3_]] := expand[a1 ** a3] + expand[a2 ** a3]
  87.  
  88. Clear[clean]
  89.  
  90. clean = Simplify[FixedPoint[expand, Distribute //@ #] //. CRule] &;
  91.  
  92. Commutator function
  93.  
  94. Clear[CommOp];
  95. CommOp[x_, y_] := clean[(x\[CenterDot]y - y\[CenterDot]x)];
  96. Clear[ACommOp];
  97. ACommOp[x_, y_] := clean[(x\[CenterDot]y + y\[CenterDot]x)];
  98.  
  99. Defining the basic variables.
  100.  
  101. Clear[Ad, A, Bd, B, Xd, X, Yd, Y]
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement