Processing math: 100%
Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+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,μ,11)

M=0,1,,11 (the full 11d flat index) a=0,1,2,3,4,5 (a 6d subspace) μ=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 TMSM (or TMSM) into

TaSa+TμSμ+T11S11

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

TaSa+TμSμ

whereas of course what I'd like is

TaSa+TμSμ+T11S11

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!

in General questions by (320 points)

1 Answer

+3 votes
 
Best answer

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$);

TmSm+T11S11

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

TaSa+TμSμ+T11S11

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

by (85.9k points)
selected by

Thanks @kasper!

...