## Sunday, March 25, 2012

### xTras for xAct

I'm a big fan of xAct, a tensor algebra package for Mathematica. While there are other tensor packages for Mathematica on the market, xAct is by far the best. It canonicalizes tensorial expressions blazingly fast, and its perturbation capabilities are state-of-the-art. If you've always wanted to do second-order perturbations of four-derivative curvature tensors but were afraid the actual calculation might take you some weeks, xAct is your man. It does it in a few seconds, and more importantly, doesn't mess up minus signs.

In fact, I like xAct so much, I wrote an additional package for. It's aptly called xTras, and its available over on www.xact.es/xtras. It brings some functionality that I found missing in xAct, like computing equations of motion for the metric, perturbations around AdS spaces, and Young projectors (yes, this also includes Bianchi identities).

I'll demonstrate some of the new functionality by computing the linearization of the Einstein tensor around AdS spaces. Here goes!
First, open up Mathematica, and enter the following line:
In:    <<xActxTras
This loads the xTras package (assuming you're managed to download and install it). Next we'll define a manifold and a metric:
In:    DefConstantSymbol[dimension,PrintAs->"D"]
In:    DefManifold[M,dimension,IndexRange[a,f]]
In:    DefMetric[-1,g[-a,-b],CD]
We'll be doing stuff on AdS spaces, which has a constant curvature. Hence we need to define a constant symbol to indicate that curvature:
In:    DefConstantSymbol[L]
Now we're ready to define the standard Lagrangian for gravity with a cosmological constant:
In:    lagrangian = RicciScalarCD[] -(dimension-2)(dimension-1)L
We'd like to compute the equations of motion that follow from this Lagrangian. To do so, we first write the command
In:    DefMetricVariation[g,h,eps]
This command makes it possible to do covariant metric variations. It also registers the command VarL, which varies Lagrangians:
In:    eom = VarL[g[a,b]][lagrangian] //TensorCollect
Out:    $$\frac{1}{2} (2 - 3 D + D^2) L g_{ab} + R_{ab} - \frac{1}{2} g_{ab} R$$
The equations of motion should allow for AdS spaces. To check this, we first generate a list of replacement rules for curvature tensors of the covariant derivative CD on symmetric spaces:
Out:    $$0$$
Out:    $$(l - D l) h^{1}{}_{ab} + \frac{1}{2} (-1 + D) l g_{ab} h^{1c}{}_{c} - \frac{1}{2} \triangledown_{a}\triangledown_{b}h^{1c}{}_{c} + \frac{1}{2} \triangledown_{c}\triangledown_{a}h^{1}{}_{b}{}^{c} + \frac{1}{2} \triangledown_{c}\triangledown_{b}h^{1}{}_{a}{}^{c}$$
$$- \frac{1}{2} \triangledown_{c}\triangledown^{c}h^{1}{}_{ab} - \frac{1}{2} g_{ab} \triangledown_{d}\triangledown_{c}h^{1cd} + \frac{1}{2} g_{ab} \triangledown_{d}\triangledown^{d}h^{1c}{}_{c}$$