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


I've just been playing with the young_project_tensor and I've run into a problem. Here is a short pice of code based on the on-line example SatisfiesBianchi


A^{a b c}::AntiSymmetric.
R_{a b c d}::RiemannTensor.

\nabla_{e}{R_{a b c d}}::SatisfiesBianchi.
R_{a b c d}::TableauSymmetry( shape={2,2}, indices={0,2,1,3} ).

foo := \nabla_{a}{R_{b c d e}} A^{a b c}.

canonicalise (foo);
impose_bianchi (foo);
young_project_tensor (foo);

The first problem is that the impose_bianchi algorithm doesn't appear to exist in Cadabra v2.0. The second problem (after removing the impose_bianchi line) is that Cadabra reports

ConsistencyException: Free indices in different terms in a sum do not match.

  <string>(2): <module>

Any suggestions would be much appreciated :).


asked in Bug reports by (1.5k points)

1 Answer

0 votes

impose_bianchi is superfluous given the Young tableaux algorithms (but of course it should be removed from that manual page). There is a known bug in young_project_tensor with placing of indices (up/down), which is what leads to the exception. For the time being, the best way out is simply to not use canonicalise here, and use young_project_product (which is more efficient and does not crash).

answered by (54k points)

Hi Kasper,
Thanks for the explanation. I did as you suggested (use only young_project_product) and it works (I get the zero I was expecting). But if I use canonicalise and young_project_product I still get the free indices error. I'm guessing that's tied up with problem you mentioned with up/down indices. Also, the url you gave to issue 100 has the final dot of the sentence included in the url (and hence a 404 not found error). Without the dot it works.