I would like to calculate explicit representations of certain $SU(N)$ generators. I have written some code, but either it is extremely slow, or something just doesn't work. Either way, I would be very happy for some input!
Back to topic: The generators are hermitian, traceless $d\times d$ matrices $t^a$ ($a=1,\ldots,N^2-1$), $$ t^a = (t^a)^\dagger = ((t^a)^T)^*,\qquad \text{Tr}[t^a]=0 $$ where $d$ depends on the representation. They should also fulfill their algebra relation $$ [t^a,t^b]:=t^a t^b - t^b t^a = \text{i} \sum\limits_{c=1}^{N^2-1}f^{abc} t^c $$ where $f^{abc}$ are known constants ("structure constants"). My code looks like this:
(* Specify SU(n) *)
n = 2;
(* rep(resentation) will determine dim(ension) *)
rep = "fund";
(* range for index a *)
dimSU = n^2 - 1;
(* Define structure constants *)
f[a_, b_, c_] := Switch[n, 2, LeviCivitaTensor[3][[a]][[b]][[c]]]
(* Define dim depending on rep *)
dim := Switch[rep, "trivial", 1, "fund", 2, "adj", 3, 1, 1, 2, 2, 3, 3]
(* Define matrices t^a with indices {ij} *)
t[a_, i_, j_] := Table[
tt[a, i, j] (* They are the variables I want to work with *)
, {ii, 1, dim}
, {jj, 1, dim}
, {aa, 1, dimSU}][[a]][[i]][[j]]
(* Print t as a list *)
tMatrix[a_] := Table[t[a, i, j], {i, 1, dim}, {j, 1, dim}]
(* Print t as a matrix *)
tMatrixForm[a_] :=
Table[t[a, i, j], {i, 1, dim}, {j, 1, dim}] // MatrixForm
Now I implement the equations that they have to fulfill:
requireTraceless =
Table[Sum[tt[a, i, i], {i, 1, dim}] == 0, {a, 1, dimSU}];
requireHermitean = Table[
tt[a, i, j] == Conjugate[tt[a, j, i]]
, {i, 1, j}
, {j, 1, dim}
, {a, 1, dimSU}];
requireLie = Table[
Sum[t[a, i, j] t[Mod[a, dimSU] + 1, j, k], {j, 1, dim}] -
Sum[t[Mod[a, dimSU] + 1, i, j] t[a, j, k], {j, 1, dim}] ==
I f[a, Mod[a, dimSU] + 1, Mod[a + 1, dimSU] + 1] t[
Mod[a + 1, dimSU] + 1, i, k]
, {i, 1, dim}
, {k, 1, dim}
, {a, 1, dimSU}];
Finally I collect my equations and variables.
varList =
Table[tt[a, i, j], {i, 1, dim}, {j, 1, dim}, {a, 1,
dimSU}] // Flatten;
eqList = {requireTraceless, requireHermitean, requireLie} // Flatten;
And try to solve.
Solve[eqList, varList]
For $SU(2)$ with dim=2
, this should yield the Pauli matrices.
I have found a related question, although it only covers the case $N=2$. Also, I would like to learn how/why my code is so slow.
edit: included info from comments
Table[]
calls certainly do not help. Why not put it as a singleTable[]
, e.g.Table[tt[a, i, j], {a, 1, dimSU}, {j, 1, dim}, {i, 1, dim}]
instead ofTable[Table[Table[tt[a, i, j], {i, 1, dim}], {j, 1, dim}], {a, 1, dimSU}]
? $\endgroup$ConjugateTranspose
. $\endgroup$