Gauge invariant cosmological perturbations in general relativity

Preliminaries

Load tensor package

<<xAct`xPand`

Nicer printing

$PrePrint=ScreenDollarIndices;

$CovDFormat="Prefix";

$DefInfoQ=False;

Object definitions

Spacetime manifold

The spacetime manifold M, on which tensors will be defined. Some Greek letters are defined as tangent space indices.

DefManifold[M,4,{α,β,γ,ζ,λ,μ,ν,ω,τ,ο}]

Metric

The background metric g of signature (-,+,+,+). The Levi-Civita derivative of a tensor (Subscript[A, μ]) will be written as (Subscript[▽, μ])(Subscript[A, ν]) in prefix notation or (Subscript[A, ν;μ]) in postfix notation. Note that this is not the physical metric; the latter will be defined later as a² times this metric, where a is the scale factor.

DefMetric[-1,Met[-α,-β],CD,{";","▽"},PrintAs->"g"]

FLRW background geometry

We now define the cosmologically symmetric background geometry. Here we choose a spatially curved Friedmann-Lemaître-Robertson-Walker background metric. The physical metric, which will be called gah2, is defined automatically by xPand.

SetSlicing[Met, Orth,SMet,SD,{"|","D"},"FLCurved"]

For the spatial part of the metric, we will use the letter h.

PrintAs[SMet]^="h"

The unit normal (co-)vector field will be denoted n.

PrintAs[Orth]^="n"

Metric perturbation

Next, we define the metric perturbations. These are given as follows.

DefMetricFields[Met,δMet,SMet]

Matter perturbation

Also for the matter fields we need a perturbation, defined as follows.

DefMatterFields[Vel,δVel,SMet]

Gravitational constant

The (Newtonian) gravitational constant which appears in the Einstein equations.

DefConstantSymbol[G,PrintAs->"G"]

Friedmann equations

For convenience, we define a tensor which will represent the field equations.

DefTensor[Feq[α,-β],M,PrintAs->"ℱ"]

Gauge transforming vector field

This is the vector field which we will use for gauge transformations.

DefTensor[Evaluate[ξ[SMet]][LI[0],μ],M]

Gauge-invariant potentials

Finally, we need the gauge invariant potentials. For the metric these are:

The “Newtonian” scalar potential Φ.

The “spatial” scalar potential Ψ.

The vector potential (Subscript[I, α]).

DefProjectedTensor[Φs[],SMet,PrintAs->"Φ"]
DefProjectedTensor[Ψs[],SMet,PrintAs->"Ψ"]
DefProjectedTensor[Iv[-α],SMet,PrintAs->"I"]

For the energy-momentum tensor, which we assume to be a fluid, we define the following gauge-invariant perturbation quantities:

The mass-energy density ℰ.

The pressure 𝒫.

The longitudinal velocity perturbation ℒ.

The transversal velocity perturbation (Subscript[𝒳, α]).

DefProjectedTensor[ρρs[],SMet,PrintAs->"ℰ"]
DefProjectedTensor[PPs[],SMet,PrintAs->"𝒫"]
DefProjectedTensor[uus[],SMet,PrintAs->"ℒ"]
DefProjectedTensor[vvv[-α],SMet,PrintAs->"𝒳"]

We also introduce a quantity for the transverse momentum, which will be helpful later.

DefProjectedTensor[Qv[-α],SMet,PrintAs->"𝒬"]

Note that the xPand package does not include an anisotropic stress among the matter perturbations!

Decomposition of perturbations

Scalar-vector-tensor decomposition of the metric

We start with the decomposition of the metric perturbation into scalars, divergence-free vectors and symmetric, trace-free, divergence-free tensors. These three go separately, so that we can analyze each type of perturbation on its own.

mets={δMet[LI[1],α_,β_]:>-2ϕSMet[LI[1]]Orth[α]Orth[β]-2ψSMet[LI[1]]SMet[α,β]-SD[α][BsSMet[LI[1]]]Orth[β]-SD[β][BsSMet[LI[1]]]Orth[α]+2SD[α][SD[β][EsSMet[LI[1]]]]}

metv={δMet[LI[1],α_,β_]:>-BvSMet[LI[1],α]Orth[β]-BvSMet[LI[1],β]Orth[α]+SD[α][EvSMet[LI[1],β]]+SD[β][EvSMet[LI[1],α]]}

mett={δMet[LI[1],α_,β_]:>2EtSMet[LI[1],α,β]}

We also combine all rules into one common rule, which decomposes any metric perturbation into the irreducible parts.

metall=MakeRule[{δMet[LI[1],α,β],Evaluate[Plus@@(δMet[LI[1],α,β]/.{mets,metv,mett})]}]

Velocity perturbations

For the perturbed four-velocity, we assume that it is normalized by the perturbed metric. From this we obtain the following decomposition of the first-order perturbation of the four-velocity. The time component originates from the normalization condition and the metric perturbation.

Expand[NoScalar[δVel[LI[1],α]/.SplitMatter[Vel,δVel,-1,SMet,"AnyGauge",1]/.metall]]
VisualizeTensor[%,SMet]

For later use, we keep the zeroth order of the velocity perturbation, which is just the unit normal vector field.

velru={SplitMatter[Vel,δVel,-1,SMet,"AnyGauge",1][[1]]}

We then decompose also the matter variables into their irreducible parts.

vels={δVel[LI[1],α_]:>SD[α][VsSMetVel[LI[1]]]-Orth[α]ϕSMet[LI[1]]}

velv={δVel[LI[1],α_]:>VvSMetVel[LI[1],α],ρVel[LI[1]]:>0,PVel[LI[1]]:>0}

velt={δVel[LI[1],α_]:>0,ρVel[LI[1]]:>0,PVel[LI[1]]:>0}

This yields the full decomposition of the matter velocity.

velall=MakeRule[{δVel[LI[1],α],Evaluate[Plus@@(δVel[LI[1],α]/.{vels,velv,velt})]}]

Gauge transformation vector field

Finally, we also introduce a decomposition for the vector field, which will be employed for the gauge transformations.

gts={ξ[SMet][LI[1],α_]:>T[SMet][LI[1]]Orth[α]+SD[α][Ls[SMet][LI[1]]]}

gtv={ξ[SMet][LI[1],α_]:>Lv[SMet][LI[1],α]}

gtt={ξ[SMet][LI[1],α_]:>0}

Also here we define a rule for the complete decomposition.

gtall=MakeRule[{ξSMet[LI[1],α],Evaluate[Plus@@(ξ[SMet][LI[1],α]/.{gts,gtv,gtt})]}]

Combining perturbations

We now collect all scalar, vector and tensor rules for metric, energy-momentum tensor and gauge transformation into common rules.

scalars=Join[mets,vels,gts]

vectors=Join[metv,velv,gtv]

tensors=Join[mett,velt,gtt]

For later use, we also define the sum of the three different types of perturbations introduced above. This will create a general metric perturbation, decomposed in irreducible components, and do the same with the gauge transforming vector field.

all=Join[metall,velall,gtall,velru]

To see that the scalars, vectors and tensors indeed sum up to the full metric perturbation, we compare with the function provided by xPand.

Perturbation[Met[-α,-β],1]
SplitPerturbations[%,scalars,SMet]+SplitPerturbations[%,vectors,SMet]+SplitPerturbations[%,tensors,SMet]-SplitPerturbations[%,SplitMetric[Met,δMet,SMet,"AnyGauge"],SMet]

Gauge transformation of the metric

Relation with Lie derivative

First let us check that the gauge transformation of the metric perturbation is given simply by the Lie derivative of the background metric.

Met[-α,-β];
Conformal[Met,MetaSMet2][%];
Perturbation[%,1]+LieD[ξ[SMet][LI[1],γ]][%];
LieDToCovD[%,CD];
SplitPerturbations[%,all,SMet];
VisualizeTensor[%,SMet]
%%-ExtractOrder[SplitGaugeChange[Met[-α,-β],all,ξ[SMet],SMet,1],1];
Expand[%];
ToCanonical[%];
Simplify[%]

Scalar part

With the definitions made, we can now calculate the gauge transformation of the metric and decompose it into its scalar, vector and tensor parts. Here is the scalar part.

SplitGaugeChange[Met[-α,-β],scalars,ξ[SMet],SMet,1];
metgts=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

One can now easily see how the metric potentials transform, and so we can define rules which perform the inverse transformation:

TableForm[metrus={ϕSMet[LI[1],LI[d_]]:>ϕSMet[LI[1],LI[d]]-Sum[Binomial[d,i]HSMet[LI[0],LI[d-i]]TSMet[LI[1],LI[i]],{i,0,d}]-TSMet[LI[1],LI[d+1]],ψSMet[LI[1],LI[d_]]:>ψSMet[LI[1],LI[d]]+Sum[Binomial[d,i]HSMet[LI[0],LI[d-i]]TSMet[LI[1],LI[i]],{i,0,d}],BsSMet[LI[1],LI[d_]]:>BsSMet[LI[1],LI[d]]+TSMet[LI[1],LI[d]]-LsSMet[LI[1],LI[d+1]],EsSMet[LI[1],LI[d_]]:>EsSMet[LI[1],LI[d]]-LsSMet[LI[1],LI[d]]}]

One checks that this indeed generates the inverse transformation:

metgts/.metrus;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[Perturbation[Conformal[Met,MetaSMet2][Met[-α,-β]],1],scalars,SMet];
Expand[%]

Vector part

We continue with the gauge transformation of the vector perturbations. The metric perturbation transforms as follows.

SplitGaugeChange[Met[-α,-β],vectors,ξ[SMet],SMet,1];
metgtv=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Also here we read off how the metric potentials transform, and define the corresponding rules:

TableForm[metruv={BvSMet[LI[1],LI[d_],α_]:>BvSMet[LI[1],LI[d],α]-LvSMet[LI[1],LI[d+1],α],EvSMet[LI[1],LI[d_],α_]:>EvSMet[LI[1],LI[d],α]-LvSMet[LI[1],LI[d],α]}]

One checks that this indeed generates the inverse transformation:

metgtv/.metruv;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[Perturbation[Conformal[Met,MetaSMet2][Met[-α,-β]],1],vectors,SMet];
Expand[%]

Tensor part

Finally, we look at the tensor part of the gauge transformation of the metric perturbation. We see that it is unchanged, and thus already gauge-invariant.

SplitGaugeChange[Met[-α,-β],tensors,ξ[SMet],SMet,1];
ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Gauge-invariant metric potentials

Combining the metric potentials in such a way that their gauge transformations cancel, one finds a set of gauge-invariant potentials.

TableForm[metginv={ϕSMet[LI[1],LI[0]]+HSMet[LI[0],LI[0]](BsSMet[LI[1],LI[0]]-EsSMet[LI[1],LI[1]])+BsSMet[LI[1],LI[1]]-EsSMet[LI[1],LI[2]],ψSMet[LI[1],LI[0]]-HSMet[LI[0],LI[0]](BsSMet[LI[1],LI[0]]-EsSMet[LI[1],LI[1]]),BvSMet[LI[1],LI[0],α]-EvSMet[LI[1],LI[1],α]}]
Expand[metginv/.metrus/.metruv];
Expand[%-metginv]

We can thus replace three metric potentials by gauge-invariant variables.

TableForm[metgiru={ϕSMet[LI[1],LI[d_]]:>Φs[LI[1],LI[d]]-Sum[Binomial[d,i]HSMet[LI[0],LI[d-i]](BsSMet[LI[1],LI[i]]-EsSMet[LI[1],LI[i+1]]),{i,0,d}]-BsSMet[LI[1],LI[d+1]]+EsSMet[LI[1],LI[d+2]],ψSMet[LI[1],LI[d_]]:>Ψs[LI[1],LI[d]]+Sum[Binomial[d,i]HSMet[LI[0],LI[d-i]](BsSMet[LI[1],LI[i]]-EsSMet[LI[1],LI[i+1]]),{i,0,d}],BvSMet[LI[1],LI[d_],α_]:>Iv[LI[1],LI[d],α]+EvSMet[LI[1],LI[d+1],α]}]

The newly introduced potentials reproduce the gauge-invariant combinations we isolated above.

TableForm[metginv/.metgiru]

Gauge transformation of the Einstein tensor

Relation with Lie derivative

As with the metric perturbation, also the perturbation of the Einstein tensor transforms with the Lie derivative of its background value.

EinsteinCD[α,-β];
Conformal[Met,MetaSMet2][%];
Perturbation[%,1]+LieD[ξ[SMet][LI[1],γ]][%];
LieDToCovD[%,CD];
ExpandPerturbation[%];
SplitPerturbations[%,all,SMet];
VisualizeTensor[%,SMet]
%%-ExtractOrder[SplitGaugeChange[EinsteinCD[α,-β],all,ξ[SMet],SMet,1],1];
Expand[%];
ToCanonical[%];
Simplify[%]

Scalar part

We can then decompose the gauge transformation into irreducible components. Here is the scalar part.

SplitGaugeChange[EinsteinCD[α,-β],scalars,ξ[SMet],SMet,1];
eingts=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

We check that the transformation is actually described by the change of the metric potentials, which we defined earlier, when we studied the transformation of the metric.

eingts/.metrus;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[ExpandPerturbation[Perturbation[Conformal[Met,MetaSMet2][EinsteinCD[α,-β]],1]],scalars,SMet];
ProjectorToMetric[%,SMet];
Expand[%];
ToCanonical[%];
Simplify[%]

Vector part

Next, we extract the vector perturbations.

SplitGaugeChange[EinsteinCD[α,-β],vectors,ξ[SMet],SMet,1];
eingtv=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Also in this case the transformation is already described by the change of the metric potentials.

eingtv/.metruv;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[ExpandPerturbation[Perturbation[Conformal[Met,MetaSMet2][EinsteinCD[α,-β]],1]],vectors,SMet];
ProjectorToMetric[%,SMet];
Expand[%];
ToCanonical[%];
Simplify[%]

Tensor part

Finally, the tensor perturbation of the Einstein tensor is a familiar result, and it is gauge-invariant.

SplitGaugeChange[EinsteinCD[α,-β],tensors,ξ[SMet],SMet,1];
ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Gauge transformation of the energy-momentum tensor

Relation with Lie derivative

We then continue with the right hand side of the field equations. To start, we define the energy-momentum tensor as a rule.

enmomru=MakeRule[{Feq[α,-β],(ρVel[]+PVel[])Vel[α]Vel[-β]+PVel[]Met[α,-β]}]

Since the energy-momentum tensor is a tensor, it must also transform via the Lie derivative. Also this is easily verified.

Feq[α,-β]/.enmomru;
Conformal[Met,MetaSMet2][%];
Perturbation[%,1]+LieD[ξ[SMet][LI[1],γ]][%];
LieDToCovD[%,CD];
ExpandPerturbation[%];
SplitPerturbations[%,all,SMet];
VisualizeTensor[%,SMet]
%%-ExtractOrder[SplitGaugeChange[Feq[α,-β]/.enmomru,all,ξ[SMet],SMet,1],1];
Expand[%];
ToCanonical[%];
Simplify[%]

Scalar part

Now we decompose the transformation of the energy-momentum tensor perturbation into irreducible components. We start with the scalar part.

SplitGaugeChange[Feq[α,-β]/.enmomru,Join[velru,scalars],ξ[SMet],SMet,1];
emgts=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Note the appearance of the metric potential in these rules. We find that the irreducible components of the energy-momentum tensor transform as follows.

TableForm[emrus={ρVel[LI[1],LI[d_]]:>ρVel[LI[1],LI[d]]-Sum[Binomial[d,i]ρVel[LI[0],LI[d-i+1]]TSMet[LI[1],LI[i]],{i,0,d}],PVel[LI[1],LI[d_]]:>PVel[LI[1],LI[d]]-Sum[Binomial[d,i]PVel[LI[0],LI[d-i+1]]TSMet[LI[1],LI[i]],{i,0,d}],VsSMetVel[LI[1],LI[d_]]:>VsSMetVel[LI[1],LI[d]]+LsSMet[LI[1],LI[d+1]]}]

When checking that these generate the inverse transformation, one must also keep in mind the transformation of the metric:

emgts/.emrus/.metrus;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[ExpandPerturbation[Perturbation[Conformal[Met,MetaSMet2][Feq[α,-β]/.enmomru],1]],Join[velru,scalars],SMet];
Expand[%]

Vector part

We continue with the vector part of the energy-momentum tensor.

SplitGaugeChange[Feq[α,-β]/.enmomru,Join[velru,vectors],ξ[SMet],SMet,1];
emgtv=ExtractOrder[%,1];
VisualizeTensor[%,SMet]

Also here the metric potential appears. We read off the transformation of the transverse part of the velocity.

TableForm[emruv={VvSMetVel[LI[1],LI[d_],α_]:>VvSMetVel[LI[1],LI[d],α]+LvSMet[LI[1],LI[d+1],α]}]

When checking that these generate the inverse transformation, one must also here keep in mind the transformation of the metric:

emgtv/.emruv/.metruv;
VisualizeTensor[%,SMet]
%%-SplitPerturbations[ExpandPerturbation[Perturbation[Conformal[Met,MetaSMet2][Feq[α,-β]/.enmomru],1]],Join[velru,vectors],SMet];
Expand[%]

Tensor part

Finally, the tensor part vanishes, as we assume also for the perturbed matter a perfect fluid.

SplitGaugeChange[(ρVel[]+PVel[])Vel[α]Vel[-β]+PVel[]Met[α,-β],Join[velru,tensors],ξ[SMet],SMet,1];
ExtractOrder[%,1]

Gauge-invariant matter variables

To find a set of gauge-invariant matter variables, we combine the perturbations with those of the metric tensor in such a way that their transformations cancel.

TableForm[emginv={VvSMetVel[LI[1],LI[0],α]+EvSMet[LI[1],LI[1],α],ρVel[LI[1],LI[0]]+ρVel[LI[0],LI[1]](BsSMet[LI[1],LI[0]]-EsSMet[LI[1],LI[1]]),PVel[LI[1],LI[0]]+PVel[LI[0],LI[1]](BsSMet[LI[1],LI[0]]-EsSMet[LI[1],LI[1]]),VsSMetVel[LI[1],LI[0]]+EsSMet[LI[1],LI[1]]}]
Expand[emginv/.emrus/.emruv/.metrus/.metruv];
Expand[%-emginv]

We can thus replace all components of the energy-momentum tensor perturbation by gauge-invariant variables.

TableForm[emgiru={VvSMetVel[LI[1],LI[d_],α_]:>vvv[LI[1],LI[d],α]-EvSMet[LI[1],LI[d+1],α],ρVel[LI[1],LI[d_]]:>ρρs[LI[1],LI[d]]-Sum[Binomial[d,i]ρVel[LI[0],LI[d-i+1]](BsSMet[LI[1],LI[i]]-EsSMet[LI[1],LI[i+1]]),{i,0,d}],PVel[LI[1],LI[d_]]:>PPs[LI[1],LI[d]]-Sum[Binomial[d,i]PVel[LI[0],LI[d-i+1]](BsSMet[LI[1],LI[i]]-EsSMet[LI[1],LI[i+1]]),{i,0,d}],VsSMetVel[LI[1],LI[d_]]:>uus[LI[1],LI[d]]-EsSMet[LI[1],LI[d+1]]}]

Also here we see that the newly introduced potentials reproduce the gauge-invariant combinations we isolated above.

TableForm[emginv/.emgiru]

Energy-momentum conservation

Background

As a first example, we study the energy-momentum conservation for the background. This has only one non-trivial component, which yields the well-known continuity equation.

CD[-β][Feq[-α,β]]/.enmomru;
Conformal[Met,MetaSMet2][%];
SplitPerturbations[%,all,SMet];
VisualizeTensor[%,SMet]

We save this relation, such that we can later use it in order to replace time derivatives of the background density.

bgemcons={ρVel[LI[0],LI[d_]]/;d>0:>-3Sum[Binomial[d-1,i]HSMet[LI[0],LI[d-i-1]](ρVel[LI[0],LI[i]]+PVel[LI[0],LI[i]]),{i,0,d-1}]}

We check that our definition solves the background conservation equation.

CD[-β][Feq[-α,β]]/.enmomru;
Conformal[Met,MetaSMet2][%];
SplitPerturbations[%,all,SMet];
%/.bgemcons;
Simplify[%]

Perturbation

Next, we take a look at the linear perturbation, and make use of the background equation to eliminate time derivatives of the background variables. We see that the result is expressed only in terms of gauge-invariant variables.

CD[-β][Feq[-α,β]]/.enmomru;
Conformal[Met,MetaSMet2][%];
Perturbation[%,1];
ExpandPerturbation[%];
SplitPerturbations[%,all,SMet];
%/.emgiru/.metgiru;
%//.bgemcons;
VisualizeTensor[%,SMet]

Gauge-invariant gravitational field equations

Background field equations

We can finally derive a set of gauge-invariant field equations. For this purpose, we first define a rule which represents the field equations.

feqru=MakeRule[{Feq[α,-β],EinsteinCD[α,-β]-8Pi G((ρVel[]+PVel[])Vel[α]Vel[-β]+PVel[]Met[α,-β])}]

The zeroth order of these equations gives us the background equation. We check that these reproduce the well-known Friedmann equations (here written in conformal time and conformal Hubble parameter):

Feq[α,-β]/.feqru;
Conformal[Met,MetaSMet2][%];
SplitPerturbations[%,all,SMet];
VisualizeTensor[%,SMet]

For later use, we also define the solution of the background equations. We will use it later to replace the background value of the matter density and pressure.

feqsol={ρVel[LI[0],LI[d_]]:>Nest[LieD[Orth[μ]],3(HSMet[]^2+𝓀SMet[])/8/Pi/aSMet[]^2/G,d],PVel[LI[0],LI[d_]]:>Nest[LieD[Orth[μ]],-(HSMet[]^2+2HSMet[LI[0],LI[1]]+𝓀SMet[])/8/Pi/aSMet[]^2/G,d]}

One easily checks that this indeed solves the background equations.

Feq[α,-β]/.feqru;
Conformal[Met,MetaSMet2][%];
SplitPerturbations[%,all,SMet];
%/.feqsol;
Expand[%]

Gauge-transforming vector field

Both sides of the field equations change under a gauge transformation. To obtain a gauge-independent set of equations, which can be expressed fully in terms of gauge-invariant potentials, we must remove this term (which is proportional to the background equations, and given by their Lie derivative with respect to a particular vector field). For this purpose, we first define a rule which gives us the particular vector field we need.

gatra={TSMet[LI[1],LI[d_]]:>-BsSMet[LI[1],LI[d]]+EsSMet[LI[1],LI[d+1]],LsSMet[LI[1],LI[d_]]:>EsSMet[LI[1],LI[d]],LvSMet[LI[1],LI[d_],α_]:>EvSMet[LI[1],LI[d],α]}

The definition of this vector field becomes clear when we study how it transforms the metric potentials - they transform into gauge-invariant potentials, while all non-invariant parts vanish:

{ϕSMet[LI[1]],ψSMet[LI[1]],BsSMet[LI[1]],EsSMet[LI[1]],BvSMet[LI[1],α],EvSMet[LI[1],α],EtSMet[LI[1],α,β]}
%/.metrus/.metruv;
%/.gatra;
%/.metgiru;
Expand[%]

The same holds for the matter variables - also these transform into gauge-invariant variables:

{ρVel[LI[1]],PVel[LI[1]],VsSMetVel[LI[1]],VvSMetVel[LI[1],α]}
%/.emrus/.emruv;
%/.gatra;
%/.emgiru;
Expand[%]

Gauge-dependent part of the field equations

Now we can isolate the gauge-dependent part of the field equations by taking the Lie derivative.

Feq[α,-β]/.feqru;
Conformal[Met,MetaSMet2][%];
LieD[ξ[SMet][LI[1],γ]][%];
LieDToCovD[%,CD];
ExpandPerturbation[%];
SplitPerturbations[%,all,SMet];
feqgdep=%/.gatra;
VisualizeTensor[%,SMet]

We check that this indeed vanishes once we impose the field equations.

feqgdep/.feqsol;
Expand[%]

Gauge-invariant perturbation field equations

We are finally in the position to derive the gauge-invariant perturbation field equations. For this purpose, we take the perturbation of the Einstein equations, and subtract the gauge-dependent part. Finally, we express the remainder in terms of the gauge-invariant metric and matter variables. We see that indeed no gauge-dependent quantities remain.

Feq[α,-β]/.feqru;
Conformal[Met,MetaSMet2][%];
Perturbation[%,1];
ExpandPerturbation[%];
SplitPerturbations[%,all,SMet];
%/.emgiru/.metgiru;
%-feqgdep;
feqginv=%/.gatra/.feqsol;
VisualizeTensor[%,SMet]

Scalar equations

We decompose the obtained equations into their irreducible components. The most involved are the scalar equations.

VisualizeTensor[feqginvs=aSMet[]^2feqginv/.(#->Zero&/@{EtSMet,vvv,Iv}),SMet]

We can disentangle the spatial component by decomposing it into a trace and trace-free part. The latter is just the trace-free second derivative of the difference of the scalar metric potentials.

ExtractComponents[feqginvs,SMet,{"Space","Space"}];
Simplify[ToCanonical[SMet[-α,β]%]]
Simplify[ToCanonical[Expand[NoScalar[%%-Scalar[%]SMet[α,-β]/3]]]]

Vector equations

For the vector perturbations, we obtain the following equations.

VisualizeTensor[feqginvv=aSMet[]^2feqginv/.(#->Zero&/@{EtSMet,Φs,Ψs,ρρs,PPs,uus}),SMet]

These equations can be brought to a more comprehensible form by introducing a new variable

Qv[LI[1],LI[0],α]==(ρVel[LI[0],LI[0]]+PVel[LI[0],LI[0]])(Iv[LI[1],LI[0],α]+vvv[LI[1],LI[0],α])
qqvru=Simplify[Solve[%,vvv[LI[1],LI[0],α]][[1]]];

We can then substitute (𝒳^α) and the background matter variables in the field equations, so that the space-time component of the perturbed equations becomes a screened Poisson for (I^α) with (𝒬^α) as its source:

Expand[-2ExtractComponents[feqginvv,SMet,{"Space","Time"}]];
%/.qqvru;
%/.feqsol;
feqv=Simplify[%]

The dynamics of (𝒬^α) is determined by a continuity equation:

ExtractComponents[feqginvv,SMet,{"Space","Space"}]/.{SD[α]->(0&),SD[-β]->Identity};
LieD[Orth[μ]][#]+4HSMet[]#&[-feqv/16/Pi/G/aSMet[]^2]-(SD[-γ][SD[γ][%]]+2%𝓀SMet[])/8/Pi/G/aSMet[]^2;
ContractMetric[%];
Expand[%];
ToCanonical[%]

Tensor equations

For completeness, we also calculate once again the tensor part of the equations. Here we obtain the vacuum equations we already know, since we assumed the tensor part of the energy-momentum tensor to vanish also for the perturbations.

VisualizeTensor[aSMet[]^2feqginv/.(#->Zero&/@{vvv,Iv,Φs,Ψs,ρρs,PPs,uus}),SMet]