Linearized Einstein Equations with Mathematica

I need to compute the linearised Einstein Equations around a fixed metric $g_{\mu \nu}$ which is not the flat metric.

Someone knows any Mathematica package or a review that can help me?

As @Artes mentions in his comment, this can be done with xAct, in particular with its xPert package. After installing it, we may load it with

<< xActxPert


We first need to set up some variables:

(* Define a 4-dimensional manifold. *)
DefManifold[M, 4, IndexRange[a, l]]

(* Define a (Lorentzian) metric and its associated curvature tensors. *)
DefMetric[-1, metric[-a, -b], CD, PrintAs -> "g"]

(* Define metric perturbations, with H being the fluctuation of the metric. *)
DefMetricPerturbation[metric, H, ϵ]


The linearized Einstein tensor can then be computed by perturbing the non-linear Einstein tensor, and subsequently expanding the perturbation:

linearEinstein = ExpandPerturbation @ Perturbation[ EinsteinCD[-a, -b] ]


$\tfrac{1}{2} (- \nabla_{a}\nabla_{b}H^{1c}{}_{c} - \nabla_{a}\nabla_{c}H^{1c}{}_{b} + \nabla_{a}\nabla^{c}H^{1}{}_{bc}) + \tfrac{1}{2} (\nabla_{c}\nabla_{a}H^{1c}{}_{b} + \nabla_{c}\nabla_{b}H^{1c}{}_{a} - \nabla_{c}\nabla^{c}H^{1}{}_{ba})$ $+ \tfrac{1}{2} (- H^{1}{}_{ab} R - g_{ab} (- H^{1cd} R_{cd} + g^{cd} (\tfrac{1}{2} (- \nabla_{c}\nabla_{d}H^{1e}{}_{e} - \nabla_{c}\nabla_{e}H^{1e}{}_{d} + \nabla_{c}\nabla^{e}H^{1}{}_{de})$ $+ \tfrac{1}{2} (\nabla_{e}\nabla_{c}H^{1e}{}_{d} + \nabla_{e}\nabla_{d}H^{1e}{}_{c} - \nabla_{e}\nabla^{e}H^{1}{}_{dc}))))$

We can clean this up a bit as follows:

linearEinstein // ContractMetric // ToCanonical


$\tfrac{1}{2} H^{1cd} g_{ab} R_{cd} - \tfrac{1}{2} H^{1}{}_{ab} R - \tfrac{1}{2} \nabla_{b}\nabla_{a}H^{1c}{}_{c} + \tfrac{1}{2} \nabla_{c}\nabla_{a}H^{1}{}_{b}{}^{c} + \tfrac{1}{2} \nabla_{c}\nabla_{b}H^{1}{}_{a}{}^{c} - \tfrac{1}{2} \nabla_{c}\nabla^{c}H^{1}{}_{ab} - \tfrac{1}{2} g_{ab} \nabla_{d}\nabla_{c}H^{1cd} + \tfrac{1}{2} g_{ab} \nabla_{d}\nabla^{d}H^{1c}{}_{c}$

If you know the values of the background curvature tensors, you could plug them in, or alternatively, compute them from the background metric with the xCoba package.

• +1. Maybe you could incorporate you answer also here? The only difference is to put g = {-1,1,1,1}, right?
– Kuba
Feb 17, 2015 at 15:38