Sunday, December 23, 2012

xTras 1.0.6

Just in time for the holidays, a new version of xTras, my xAct Mathematica package, has hit the selves. Version 1.0.6 updates AllContractions, which should be much faster. You can now compute all possible contractions of your favorite tensors in a reasonable amount of time (provided there aren't too many indices to contract over), like so:
In:    AllContractions[ RiemannCD[a,b,c,d]RiemannCD[e,f,g,h] ];
Out: { \( R^2, R_{ab} R^{ab}, R_{abcd} R^{abcd}, R_{acbd} R^{abcd} \) }
The last two contractions are actually not independent, but are related to each other via the Bianchi identity. But that's a multi-term symmetry, and unfortunately AllContractions doesn't take those into account.

Other functions, such as TensorCollect and SolveConstants should also see some speed improvements. And besides the usual bugfixes there are nice new functions such as SolveTensors (which can solve a system of linear tensorial equations in terms of tensors) and IndexConfigurations. The latter gives all possible independent index configurations of an expression. For example:
In:    IndexConfigurations[ metric[a,b]metric[c,d] ];
Out: { \(g^{ab} g^{cd}, g^{ac} g^{bd}, g^{ad} g^{bc}\) }
Here's another example:
In:    IndexConfigurations[ RiemannCD[a,b,c,d] ];
Out: { \(R^{abcd}, R^{acbd}, R^{adbc} \) }
Note that the three different index configurations of the Riemann tensor are actually not independent due to the Bianchi identity. Like AllContractions, IndexConfigurations doesn't take these multi-term symmetries into account.

xTras 1.0.6 has some more improvements; check the Changelog for details. As usual, the new version can be downloaded from its www.xact.es/xtras.