# Define rank-3 tensor (structure constant of Lie group) with split indices

I am trying to define this tensor:

$f^\Gamma_{\Lambda\Sigma} = (g_1 \epsilon_{ABC}, g_2 \epsilon_{i+3, j+3, k+3}), \hspace{3mm} \epsilon = \text{Levi-Civita}$

I'm stuck on a particular point: The capital Greek indices actually split into Latin (capital) and lower-case indices as follows:

$\Lambda = (A, i), \hspace{3mm}\text{where}\hspace{3mm} A = 1,2,3; i = 1,\,...\,n$

The same case applies for $\Pi, \Sigma$, i.e. they are split into ($B,j)$ and $(C,k)$.

This makes it difficult to define the above object (the rank-3 tensor, or strictly speaking, the structure constant of a Lie group) in Mathematica, as a single type of index is usually used. In general, is there a smart way to define split tensor indices like the one above?

The reason for this split is as follows: I have a group $SU(3,n)$ which has as subgroup the product $SU(3)\times SU(n)$. The fundamental index of $SU(3,n)$ is $\Lambda = (1,2,3,..., n+3)$; while the fundamental indices of $SU(3)$ and $SU(n)$ are

$A = 1,2,3:$ Fundamental index of SU(3)

$j = 1,..., n$: Fundamental index of SU(n)

The above split allows for $\Lambda$ to be written in terms of its subgroup.

• So it is actually a rank-5 tensor. Why not defining it as such? You can Flatten out certain levels of the tensor afterwards if needed. Jul 9, 2018 at 9:47
• I am confused - How is it a rank-5 tensor? $f$ only has 3 indices, each of them is split into 2 types, i.e. $\Lambda = (A,i), \Sigma = (B,j), \Gamma = (C,k).$ The components of $f$ are, for example: ($f^A_{BC}, f^i_{jk}$) Jul 9, 2018 at 10:02
• You wrote $\Lambda = (A , i )$, so it is a pair of indices. Isn't it? Ah, well, I did not count in $\Gamma$. So it is a rank-6 tensor. Jul 9, 2018 at 10:03
• Oh no, it is not a pair of indices. For example, I have the product of 2 Lie groups: $SU(3)\times SU(n)$. The fundamental indices of SU(3) are labeled by $A = 1,2,3$, and the fundamental indices of $SU(n)$ are labeled by $j = 1,..., n$; but $\Lambda$ is the fundamental index of $SU(3,n)$, so it runs from $(1,2,3; 1,...,n)$ Jul 9, 2018 at 10:05
• Then it does not make sense to write them as pairs. You have $3 + n$ basis vectors, so index them from $1$ to $3 + n$. Otherwise, the indices $1$, $2$, $3$ are ambiguous. Jul 9, 2018 at 10:08

I am not entirely sure, but maybe you are looking for the structure constants of the direct product of two Lie algebras? Assuming that the structure constants of the two Lie algebra are given by Signature[{i,j,k}], something like this should work:

n = 12;
a = SparseArray@Array[Signature[List[##]]&, {3, 3, 3}];
b = SparseArray@Array[Signature[List[##]]&, {n, n, n}];
f = SparseArray[
Rule[
Join[a["NonzeroPositions"], b["NonzeroPositions"] + Length[a]],
Join[a["NonzeroValues"], b["NonzeroValues"]]
],
{1, 1, 1} (Length[a] + Length[b])];

• Thanks for the code ! Yes, indeed, $f$ is the combination of the structure constants of 2 Lie algebras: SU(3) and SU(n). My Mathematica 8 outputs some error message concerning @*List - I'll test it on my work laptop with Mathematica 11 tomorrow. Btw, I understood why my code yielded the wrong answer when I checked $f[[6,6,6]]$. The way it was written produces a rank-3 array that is $6\times 12\times 3$, so obviously $f[[6,6,6]]$ doesn't exist. Jul 9, 2018 at 13:50
• Thanks for the code ! Yes, indeed, $f$ is the combination of the structure constants of 2 Lie algebras: SU(3) and SU(n). There're 8 blocks with different index types in $f$: ($ABC, ABk , AjC, Ajk, iBC, iBk, ijC,ijk$) and only $ABC, ijk$ are nonzero. My Mathematica 8 outputs some error message concerning @*List for this code - I'll test it on my work laptop with Mathematica 11 tomorrow. Btw, I understood why my code yielded the wrong answer when I checked $f[[6,6,6]]$. The way it was written produces a rank-3 array that is $6\times 6\times 3$, so obviously $f[[6,6,6]]$ doesn't exist. Jul 9, 2018 at 13:57
• Fixed the issue with Signature@*List@. Please have a try. (Btw.@* is the infix form of Composition.) Jul 9, 2018 at 15:34
• The code works without a hitch now ! Thanks so much for your help! Although it is curious that @* doesn't work on either my Mathematica 8 or Mathematica 11 machine. Anyway, many thanks again ! Jul 10, 2018 at 2:47
• That's indeed curious. Well, doesn't matter. You're welcome. Jul 10, 2018 at 3:03