# Splitting index into 3 subsets

+1 vote

Hi,

For a calculation I'm trying to do, I have an 11d space whose (flat/tangent space) indices are split as follows

$M = (a, \mu, 11)$

$M = 0, 1, \ldots, 11$ (the full 11d flat index) $a = 0, 1, 2, 3, 4, 5$ (a 6d subspace) $\mu = 6, 7, 8, 9$ (a 4d subspace)

(11 is separated out)

What I'd like to do is have split_index split an expression of the form $T_M S^M$ (or $T_M S_M$) into

$T_{a}S^{a} + T_{\mu}S^{\mu} + T_{11}S^{11}$

So far, what I have is

{M,N,P,Q,R,11}::Indices(full,flat,elevenD).
{a,b}::Indices(sixD,parent=elevenD).
{\mu,\nu,\rho}::Indices(fourD,parent=elevenD).
ex:=T_{M} S^{M};
split_index(_, $M,a,\mu$);

the output is

$T_a S^a + T_\mu S^\mu$

whereas of course what I'd like is

$T_a S^a + T_\mu S^\mu + T_{11} S^{11}$

I know that split_index can be used to split into only two subsets.

So, I tried the following

{M,N,P,Q,R,11}::Indices(full,flat,elevenD).
{a,b}::Indices(sixD,parent=elevenD).
{\mu,\nu,\rho,11}::Indices(fiveD,parent=elevenD).
{\mu,\nu,\rho}::Indices(fourD,parent=fiveD).

but this too produces the same output as before.

How can a three (or more) subset split be achieved?

Any ideas, suggestions are welcome, including criticism of (any redundancy in?) the above code! Thanks!

I would first split off the '11' from the 'M,N,P' index, and then split the remaining index once more. Something like

{M,N,P,Q,R}::Indices(elevenD);
{m,n,p,q,r}::Indices(tenD);
{a,b,c,d,e}::Indices(sixD, parent=tenD);
{\mu,\nu,\rho}::Indices(fourD, parent=tenD);

ex:= T_{M} S^{M};
split_index(_,$M, m, 11$);

$$T_{m} S^{m} + T_{11} S^{11}$$

split_index(_, $m, a, \mu$);

$$T_{a} S^{a} + T_{\mu} S^{\mu} + T_{11} S^{11}$$

Note that this requires introducing a separate set of indices for the 10d subspace which you are then immediately splitting into 6+4.

by (65.1k points)
selected

Thanks @kasper!