Cadabra
a field theory motivated approach to computer algebra

RiemannTensor

Make an object a Riemann curvature tensor.
Gives an object the symmetry properties of a Riemann tensor. This has implications for various simplification algorithms such as canonicalise or young_project_tensor. The following is an example which makes use of the Ricci identity.
R_{m n p q}::RiemannTensor; A^{m n p}::AntiSymmetric; ex:= A^{m n p} R_{m n p q};
\(\displaystyle{}\text{Attached property TableauSymmetry to }R_{m n p q}.\)
\(\displaystyle{}\text{Attached property AntiSymmetric to }A^{m n p}.\)
\(\displaystyle{}A^{m n p} R_{m n p q}\)
young_project_tensor(_, modulo_monoterm=True);
\(\displaystyle{}A^{m n p} \left(\frac{2}{3}R_{m n p q} - \frac{1}{3}R_{m q n p}+\frac{1}{3}R_{m p n q}\right)\)
distribute(_);
\(\displaystyle{}\frac{2}{3}A^{m n p} R_{m n p q} - \frac{1}{3}A^{m n p} R_{m q n p}+\frac{1}{3}A^{m n p} R_{m p n q}\)
canonicalise(_);
\(\displaystyle{}0\)
Copyright © 2001-2017 Kasper Peeters
Questions? info@cadabra.science