Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

I am trying to define the symmetry property of the spin connection $ \omega_\mu^{ab}$ using the command TableauSymmetry as follows.

{\mu,\nu,\rho,\sigma,\lambda,\kappa,\alpha,\beta,\gamma,\xi}::Indices(curved, position=fixed). 
{\mu,\nu,\rho,\sigma,\lambda,\kappa,\alpha,\beta,\gamma,\xi}::Integer(0..3).
{a,b,c,d}::Indices(flat, position=independent).
{a,b,c,d}::Integer(0..3).
e^{a}_{\mu}::Vielbein.
\omega_{\mu}^{a b}::TableauSymmetry( shape={1,1}, indices{1,2} ).

then I try to test the symmetry of $\omega_\mu^{ab}$ (which should be antisymmetric in $(a, b)$ indices as follows.

testO:=\omega_{\mu}^{a b} + \omega_{\mu}^{b a}; 
young_project_tensor(_);

and this causes the kernel to crash every time. I suspect that this is caused by the fact that $\mu$ and $a$, $b$ are different types of indices. If, however, I replace $\mu$ by $c$ then everything works perfectly as expected (output is 0).

testO:=\omega_{a}^{b c} + \omega_{a}^{c b};
young_project_tensor(_);

Is there a way to deal with object carrying different types of indices like the spin connection?

Other than the spin connection, there are many other objects which transform under different symmetry groups and I would like to learn how to define them.

For example, non-Abelian gauge fields

$A_{\mu}^{a}$,

and their strengths

$F_{\mu\nu}^{a}$

can carry spacetime $\mu$ and Adjoint indices $a, b$.

In this case, how should one define them? (For $SO(n)$ groups, the adjoint is often labeled by antisymmetric pair $[a,b]$, which makes things even more complicated)

Many thanks in advance for any help.

in General questions by (210 points)
edited by

1 Answer

+1 vote
 
Best answer

In your first problem, you are missing an equals sign between the indices and {1,2}. Make it read

\omega_{\mu}^{a b}::TableauSymmetry( shape={1,1}, indices={1,2} ).
                                                         ^here!

and things work as expected.

You don't have to 'define' anything special for objects with different types of indices, just write them and specify their index symmetries. If that doesn't solve your problem, maybe you can be a bit more explicit in explaining where you get stuck?

by (83.1k points)
selected by

Thank you for taking the time to answer my question. Indeed, it was a missing equal sign (I do feel silly now for missing this obvious equal sign). I was convinced that it had something to do with the different types of indices used (spacetime $\mu, \nu$ and Lorentz $a,b$).

I am not very familiar with the symmetry property of Young tableau, so it is a bit difficult for me to specify the symmetry properties of objects carrying multiple types of indices. For example, if I were to define the field strengths $F_{\mu \nu}^{a b}$ of the $SO(8)$ gauge group (where $a, b=1,...,8$) so the pair $(a,b)$ labels the 28 directions in the Adjoint of $SO(8)$, I wrote the following code to familiarise myself with the syntax.

{\mu, \nu, \rho, \lambda}::Indices.
{\mu, \nu, \rho, \lambda}::Integer(0..3).
{a, b, c, d, l, m, n}::Indices(vector).
{a, b, c, d, l, m, n}::Integer(1..8).
 x::Coordinate.
A_{\mu}^{a b}::AntiSymmetric; 
F_{\mu \nu}^{a b}::TableauSymmetry( shape={2,2}, indices={0,2,1,3} );
{A_{\mu}^{a b}, F_{\mu \nu}^{a b}}::Depends(x); 
propF1:= F_{\mu \nu}^{a b} + F_{\nu \mu}^{a b};
propF2:= F_{\mu \nu}^{a b} + F_{\mu \nu}^{b a};
young_project_tensor(propF1);
young_project_tensor(propF2);

The results are zero as expected, but is there anyway to define the antisymmetry of $F_{\mu \nu}^{a b}$ without using TableauSymmetry ? Since $F$ is antisymmetric in $\mu, \nu$ and independently symmetric in $a, b$ ?

Thank you in advance.

If you want $F^{a b}_{\mu\nu}$ to be anti-symmetric in the greek indices and symmetric in the latin ones, you need

F_{\mu\nu}^{a b}::TableauSymmetry(shape={1,1}, indices={0,1}, shape={2}, indices={2,3});

You can see that this works with

ex:=F_{\mu\nu}^{a b} + F_{\nu\mu}^{a b};
canonicalise(_);
ex:=F_{\mu\nu}^{a b} - F_{\mu\nu}^{b a};
canonicalise(_);

which produces two zeroes.

Do not use the symmetry in your comment (shape={2,2}, indices={0,2,1,3}): that gives the symmetry of the Riemann tensor, and mixes indices of the two types.

Thank you very much for the correction on the TableauSymmetry specification. This is what I was looking for.

...