Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

SO(4,2)-doubleton-Casimirs

By: a guest on Jan 6th, 2014  |  syntax: None  |  size: 10.21 KB  |  views: 37  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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.  
  59. SetAttributes[expand, HoldAll]
  60.  
  61. Unevaluated[
  62.   expand[expr_] :=
  63.    Block[{NonCommutativeMultiply (*or times*)},
  64.     expr //. {times[left___, cnum_ /; FreeQ[cnum, (_Boson)],
  65.         right___] :> cnum*times[left, right],
  66.       times[left___,
  67.         cnum_ /; (! FreeQ[cnum, Times[n___?NumericQ, ___Boson]]),
  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