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

Hi again. This quation is related with a previous question.

I'm considering a differential 3-form (mass term), and want to reduce this term from five dimensions down to four.

{\Lambda,\Theta,\Sigma,\Xi,\Gamma,\Delta,\Pi,\Omega}::Indices(full,position=independent);
{\mu,\nu,\rho,\sigma,\gamma,\lambda}::Indices(space1,position=independent);
\partial{#}::PartialDerivative;
C_{\Sigma \Pi \Theta}::AntiSymmetric;

third := - a C_{\Sigma \Pi \Theta} C_{\Sigma \Pi \Theta};
split_index(third, $\Sigma,\sigma,4$, repeat=True);

At this point I'd like to eliminate (efficiently) the terms such as $C{4 4 \mu}$ and $C{444}$.

I expected that canonicalise() would order (i.e. sort) the indices, but it does not

  • How can (if possible) sort the indices?
  • Is there a way to use the logical and and or onto the conditional substitution? If so, I could use a single substitution command to kill all irrelevant terms.

Ideas? Thank you!

in General questions by (15.0k points)

1 Answer

+1 vote
 
Best answer

The line

C_{\Sigma \Pi \Theta}::AntiSymmetric;

makes the tensor antisymmetric in the 'full' indices, and it would be natural for Cadabra to infer that this implies that the anti-symmetry is also present when these indices are replaced with either '4' or one of the space1 indices, but it doesn't do that (yet). If it does not clash with other tensors, you can do

C_{A? B? C?}::AntiSymmetric;

which makes the tensor antisymmetric regardless of what you stick in the index slots. Of course this will then also yield antisymmetry for a C-tensor with indices from yet another set (which you probably won't have).

Unfortunately there are no logical operators in conditional substitution yet; it's fairly limited at the moment.

by (82.5k points)
selected by
...