# 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. – Henrik Schumacher Jul 9 '18 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}$) – user195583 Jul 9 '18 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. – Henrik Schumacher Jul 9 '18 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)$ – user195583 Jul 9 '18 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. – Henrik Schumacher Jul 9 '18 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. – user195583 Jul 9 '18 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. – user195583 Jul 9 '18 at 13:57
• Fixed the issue with Signature@*List@. Please have a try. (Btw.@* is the infix form of Composition.) – Henrik Schumacher Jul 9 '18 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 ! – user195583 Jul 10 '18 at 2:47
• That's indeed curious. Well, doesn't matter. You're welcome. – Henrik Schumacher Jul 10 '18 at 3:03