Solving for the Einstein equations in the Bondi-Sachs metric

We saw how to code and verify all the geometric quantities given in Barnich and Troessaert paper usig xAct.

We find agreement with the results given there. This validates that xAct can be used for coding such problems.

In this session our goal is to dig up the consequences of putting the bondi metric in the Einsteins equation

This is done in a Hierarchical manner known as Bondi Heirarchy

We shall only demonstrate it for a few known examples - we follow “The Λ-(Subscript[BMS, 4]) group of (Subscript[dS, 4]) and new boundary conditions for (Subscript[AdS, 4])” by Geoffery Compere, Adrien Fiorucci, Romain Ruzziconi to demonstrate this.

Further in order to avoid proliferation of indices, we shall make use of the following notation for contracted indices as given in - The partial bondi gauge: Further enlarging the asymptotic structure of gravity by Marc Geiller and Celine Zwikel

(Subscript[C, AB]) (C^AB) = [CC],         (Subscript[C, AB]) (D^AB) = [CD] etc
									
									C= (Subscript[q, AB]) (C^AB) ,  D= (Subscript[q, AB]) (D^AB)  , E= (Subscript[q, AB]) (E^AB) etc

Further we shall take the expression for the inverse of the metric given in the above paper.

Let us now get started

SetDirectory["~/Documents/Wolfram Mathematica/xAct_1.2.0"]

<<xAct`xTensor`;
<<xAct`TexAct`;

$PrePrint= ScreenDollarIndices;
SetOptions[ToCanonical,UseMetricOnVBundle->None];
DefParameter[{u,r}];
pu[i_]:=ParamD[u][i];
pr[i_]:=ParamD[r][i];

DefManifold[M2,2,{A,B,F,G,H,L,P,Q,R,S,Z,Z0,Z1,Z2}];
DefMetric[1,q[-A,-B],CD,OtherDependencies->{u},PrintAs->"q"];

bondi=Join[MakeRule[{PD[-A][r],0},MetricOn->All],MakeRule[{PD[-A][u],0},MetricOn->{A}],MakeRule[{CD[-A][r],0},MetricOn->{A}]]

DefTensor[β[],{M2,u,r}];
DefTensor[V[],{M2,u,r}];
DefTensor[U[A],{M2,u,r}];
DefTensor[g[-A,-B],{M2,u,r},Symmetric[{-A,-B}]];

Since capital C, capital D and capital E are already an inbuilt symbol in Mathematica, we shall input these fields by small case. Further we continue this notation for F as well. Though when we print them, we print them as usual.

DefTensor[c[-A,-B],{M2,u},Symmetric[{-A,-B}],PrintAs->"C"];
DefTensor[d[-A,-B],{M2,u},Symmetric[{-A,-B}],PrintAs->"D"];
DefTensor[e[-A,-B],{M2,u},Symmetric[{-A,-B}],PrintAs->"E"];
DefTensor[f[-A,-B],{M2,u},Symmetric[{-A,-B}],PrintAs->"F"];
DefTensor[g4[A,B],{M2,u},Symmetric[{A,B}]];
DefTensor[g5[A,B],{M2,u},Symmetric[{A,B}]];
DefTensor[g6[A,B],{M2,u},Symmetric[{A,B}]];

g4, g5 and g6 are the coefficient of the inverse metric at the 1/(r^4), 1/(r^5) and 1/(r^6) respectively

c[-A,-B]

DefTensor[c0[],{u,M2},PrintAs->"C"];
DefTensor[d0[],{u,M2},PrintAs->"D"];
DefTensor[e0[],{u,M2},PrintAs->"E"]; 
DefTensor[f0[],{u,M2},PrintAs->"F"]; 

DefTensor[dtf[-A,-B],{u,M2},Symmetric[{-A,-B}],PrintAs->"𝒟"];
DefTensor[etf[-A,-B],{u,M2},Symmetric[{-A,-B}],PrintAs->"ℰ"];
DefTensor[ftf[-A,-B],{u,M2},Symmetric[{-A,-B}],PrintAs->"ℱ"];

DefTensor[cc[],{u,M2},PrintAs->"[CC]"];
DefTensor[cd[],{u,M2},PrintAs->"[CD]"];
DefTensor[cdtf[],{u,M2},PrintAs->"[C𝒟]"];
DefTensor[ce[],{u,M2},PrintAs->"[CE]"];
DefTensor[cetf[],{u,M2},PrintAs->"[Cℰ]"];
DefTensor[dd[],{u,M2},PrintAs->"[DD]"];
DefTensor[dtfdtf[],{u,M2},PrintAs->"[𝒟𝒟]"];

We define the rules for the tracefree part of the fields and rules to define some scalar expressions when contractions are already there

crule=Join[MakeRule[{q[A,B]c[-A,-B],0}],MakeRule[{q[-A,-B]c[A,B],0}],MakeRule[{c[-B,B],0}]];
dtfrule=Join[MakeRule[{q[A,B]dtf[-A,-B],0}],MakeRule[{q[-A,-B]dtf[A,B],0}],MakeRule[{dtf[A,-A],0}]];
etfrule=Join[MakeRule[{q[A,B]etf[-A,-B],0}],MakeRule[{q[-A,-B]etf[A,B],0}],MakeRule[{etf[A,-A],0}]];
ftfrule=Join[MakeRule[{q[A,B]ftf[-A,-B],0}],MakeRule[{q[-A,-B]ftf[A,B],0}],MakeRule[{ftf[A,-A],0}]];

tf=Join[crule,dtfrule,etfrule,ftfrule];

c0rule=Join[MakeRule[{c[A,B]q[-A,-B],0}],MakeRule[{c[-A,-B]q[A,B],0}]];
d0rule=Join[MakeRule[{d[A,B]q[-A,-B],d0[]}],MakeRule[{d[-A,-B]q[A,B],d0[]}],MakeRule[{d[-A,A],d0[]}]];
e0rule=Join[MakeRule[{e[A,B]q[-A,-B],e0[]}],MakeRule[{e[-A,-B]q[A,B],e0[]}],MakeRule[{e[-A,A],e0[]}]];
f0rule=Join[MakeRule[{f[A,B]q[-A,-B],f0[]}],MakeRule[{f[-A,-B]q[A,B],f0[]}],MakeRule[{f[-A,A],f0[]}]];

ccrule=MakeRule[{c[A,B]c[-A,-B],cc[]}];
cdrule=Join[MakeRule[{c[A,B]d[-A,-B],cd[]}],MakeRule[{c[-A,-B]d[A,B],cd[]}]];
cdtfrule=Join[MakeRule[{c[A,B]dtf[-A,-B],cdtf[]}],MakeRule[{c[-A,-B]dtf[A,B],cdtf[]}]];
cerule=Join[MakeRule[{c[A,B]e[-A,-B],ce[]}],MakeRule[{c[-A,-B]e[A,B],ce[]}]];
cetfrule=Join[MakeRule[{c[A,B]etf[-A,-B],cetf[]}],MakeRule[{c[-A,-B]etf[A,B],cetf[]}]];
ddrule=MakeRule[{d[A,B]d[-A,-B],dd[]}];
dtfdtfrule=MakeRule[{dtf[A,B]dtf[-A,-B],dtfdtf[]}];

scalar=Join[c0rule,d0rule,e0rule,f0rule,ccrule,cdrule,cdtfrule,cerule,cetfrule,ddrule,dtfdtfrule];

identity1=MakeRule[{c[-A,-B]c[A,-G],(1/2)(cc[]-c0[]c0[])q[-B,-G]+c0[]c[-B,-G]},MetricOn->All];
identity2=MakeRule[{c[-A,-F]c[-B,-G]c[F,G],(1/2)c0[](cc[]-c0[]c0[])q[-A,-B]+(1/2)(cc[]+c0[]c0[])c[-A,-B]},MetricOn->All];
identity=Join[identity1,identity2];

Drule=MakeRule[{d[-A,-B],(1/4)q[-A,-B]cc[]+dtf[-A,-B]},MetricOn->{A,B}];
Erule=MakeRule[{e[-A,-B],(1/2)q[-A,-B]Module[{F,G},dtf[-F,-G]c[F,G]]+etf[-A,-B]},MetricOn->{A,B}];
Frule=MakeRule[{f[-A,-B],(1/2)q[-A,-B](Module[{F,G},c[F,G]etf[-F,-G]]+(1/2)Module[{Z0,Z1},dtf[Z0,Z1]dtf[-Z0,-Z1]]-(1/16)cc[]cc[])+ftf[-A,-B]},MetricOn->{A,B}];
defrules=Join[Drule,Erule,Frule];

d[-A,-B]//.defrules

Clear[Erule]

Erule=MakeRule[{e[-A,-B],(1/2)q[-A,-B]Module[{F,G},dtf[-F,-G]c[F,G]]+etf[-A,-B]}];

e[A,B]/.Erule

IndexSet[c0[],0];
IndexSet[d0[],(((Module[{A,B},q[A,B]d[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf)//.scalar];
IndexSet[e0[],(((Module[{A,B},q[A,B]e[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf)//.scalar];
IndexSet[f0[],(((Module[{A,B},q[A,B]f[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf)//.scalar];
IndexSet[dd[],(((Module[{A,B},d[A,B]d[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf//ContractMetric)//.scalar];
IndexSet[ce[],(((Module[{A,B},c[A,B]e[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf//ContractMetric)//.scalar];
IndexSet[cd[],(((Module[{A,B},c[A,B]d[-A,-B]]//SeparateMetric[])//.defrules//ToCanonical)//.tf//ContractMetric)//.scalar];

Perturbative expansion

metexp=MakeRule[{g[-A,-B],(r^2)q[-A,-B]+r c[-A,-B]+d[-A,-B]+(1/r)e[-A,-B]+(1/(r^2))f[-A,-B]}];
imetexp=MakeRule[{g[A,B],(1/(r^2))q[A,B]-((c[A,B])/(r^3))+((g4[A,B])/(r^4))+((g5[A,B])/(r^5))+((g6[A,B])/(r^6))}];
metricexp=Join[metexp,imetexp];

g[A,B]/.imetexp

DefTensor[β0[],{u,M2}];
DefTensor[β1[],{u,M2}];
DefTensor[β2[],{u,M2}];
DefTensor[β3[],{u,M2}];
DefTensor[β4[],{u,M2}];

betaexp=MakeRule[{β[],β0[]+((β1[])/r)+((β2[])/(r^2))+((β3[])/(r^3))+((β4[])/(r^4))}];

DefTensor[U0[A],{u,M2}];
DefTensor[U1[A],{u,M2}];
DefTensor[U2[A],{u,M2}];
DefTensor[U3[A],{u,M2}];
DefTensor[U3L[A],{u,M2}];

Uexp=MakeRule[{U[A],U0[A]+((U1[A])/r)+((U2[A])/(r^2))+((U3[A])/(r^3))+((U3L[A]Log[r])/(r^3))}];

Raw Einstein Equations

Rrr=(1/4) ({{g, ({{A, B}, { ,  }})}}) ({{g, ({{F, G}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, F}})}}) (∂_r)({{g, ({{ ,  }, {B, G}})}})+({{g, ({{A, B}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, B}})}}) (∂_r)β-(1/2) ({{g, ({{A, B}, { ,  }})}}) (∂_r)(∂_r)({{g, ({{ ,  }, {A, B}})}});

RrA=(1/2) (E^(-2 β)) (∂_r)({{g, ({{ ,  }, {A, B}})}}) (∂_r)({{U, ({{B}, { }})}})+(1/4) (E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) ({{g, ({{F, G}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {F, G}})}}) (∂_r)({{U, ({{B}, { }})}})-(E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) (∂_r)({{U, ({{B}, { }})}}) (∂_r)β-(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_r)(∂_A)({{g, ({{ ,  }, {B, F}})}})-(∂_r)(∂_A)β+(1/2) (E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) (∂_r)(∂_r)({{U, ({{B}, { }})}})+(1/4) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {F, H}})}}) (∂_A)({{g, ({{ ,  }, {B, G}})}})+(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {B, F}})}}) (∂_A)β-(1/2) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, H}})}}) (∂_F)({{g, ({{ ,  }, {B, G}})}})+(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_F)(∂_r)({{g, ({{ ,  }, {A, B}})}})+(1/4) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, H}})}}) (∂_G)({{g, ({{ ,  }, {B, F}})}});

Expansion of Raw Einstein Equation without explicit values

Rrrexp=Rrr//.metricexp//.betaexp

Rrrexp=Rrr//.metricexp//.betaexp;

RrAexp=RrA//.metricexp//.betaexp//.Uexp;

g4rule=MakeRule[{g4[A,B],-d[A,B]+c0[]c[A,B]+(1/2)cc[]q[A,B]}];
g5rule=MakeRule[{g5[A,B],-e[A,B]+c0[]dtf[A,B]+d0[]c[A,B]-(1/2)(cc[]+c0[]c0[])c[A,B]+(1/2)(c0[]c0[]c0[]-c0[]cc[]+2cd[])q[A,B]}];
g6rule=MakeRule[{g6[A,B],-f[A,B]+c0[]etf[A,B]+e0[]c[A,B]+d0[]dtf[A,B]-(1/2)(cc[]+c0[]c0[])d[A,B]+(c0[](cc[]-d0[])-cd[])c[A,B]+(1/4)(cc[](cc[]-2d0[])+4ce[]+2dd[]-4c0[]cd[]+c0[]c0[](6d0[]-c0[]c0[]))q[A,B]}];

Inverse metric expansions (Marks’s paper)

IndexSet[g4[A_,B_],-d[A,B]+c0[]c[A,B]+(1/2)cc[]q[A,B]/.tf];
IndexSet[g5[A_,B_],-e[A,B]+c0[]dtf[A,B]+d0[]c[A,B]-(1/2)(cc[]+c0[]c0[])c[A,B]+(1/2)(c0[]c0[]c0[]-c0[]cc[]+2cd[])q[A,B]/.tf//ToCanonical];
IndexSet[g6[A_,B_],-f[A,B]+c0[]etf[A,B]+e0[]c[A,B]+d0[]dtf[A,B]-(1/2)(cc[]+c0[]c0[])d[A,B]+(c0[](cc[]-d0[])-cd[])c[A,B]+(1/4)(cc[](cc[]-2d0[])+4ce[]+2dd[]-4c0[]cd[]+c0[]c0[](6d0[]-c0[]c0[]))q[A,B]/.tf//ToCanonical];

Solving  for β using rr equation.

A note about series expansion.

Here we are interested in taking the r -> ∞ limit. Consequently, Mathematica is already assumes that in such a limit r is in the denominator and then counts the power.

test=g[A,B]//.imetexp

Series[test,{r,Infinity,3}]

SeriesCoefficient[test,{r,Infinity,5}]

SeriesCoefficient[test,{r,Infinity,-5}]

test2=g[-A,-B]//.metexp

SeriesCoefficient[test,{r,Infinity,2}]

Contrast this with

function[x_]:=x0+ x+ 1000(x^2)+(x^3)

SeriesCoefficient[function[x],{x,0,2}]

With this in mind let us now do the series expansion

SeriesCoefficient[Rrrexp,{r,Infinity,-8}]//ToCanonical//SeparateMetric[]//ToCanonical

SeriesCoefficient[Rrrexp,{r,Infinity,-1}]//ToCanonical//SeparateMetric[]//ToCanonical

SeriesCoefficient[Rrrexp,{r,Infinity,0}]//ToCanonical//SeparateMetric[]//ToCanonical

SeriesCoefficient[Rrrexp,{r,Infinity,1}]//ToCanonical//SeparateMetric[]//ToCanonical

SeriesCoefficient[Rrrexp,{r,Infinity,2}]//ToCanonical//SeparateMetric[]//ToCanonical

We find that Einstein equations are satisfied at till (1/(r^2)) automatically. First non-trivial situation appears at (1/(r^3))as we see below

fixing β1

SeriesCoefficient[Rrrexp,{r,Infinity,3}]//ToCanonical//SeparateMetric[]//ToCanonical

The only way for Einstein’s equations to get solved is that β1 must vanish identically. This is what Prof. Amitabh mentioned in his lectures.

beta1=MakeRule[{β1[],0}];

fixing β2

((((((SeriesCoefficient[Rrrexp,{r,Infinity,4}])/.g4rule)//SeparateMetric[])//.defrules//ToCanonical)//.tf//ContractMetric))//.scalar

The only way for Einstein’s equations to get solved is that β2 must equals -(([CC])/32).  We can keep going on

beta2=MakeRule[{β2[],-(1/32)cc[]}];

fixing β3

(((((SeriesCoefficient[Rrrexp,{r,Infinity,5}]//.beta1//.beta2//.g5rule//SeparateMetric[])//ToCanonical)//.defrules//ToCanonical))//.scalar//.defrules//.tf//ContractMetric)//.identity//.tf

beta3=MakeRule[{β3[],-(1/12)cd[]}];

fixing β4

((((((SeriesCoefficient[Rrrexp,{r,Infinity,6}]//.beta1//.beta2)//.g4rule//.g5rule//.g6rule//ToCanonical)//.tf)//.scalar//ContractMetric)//.identity//ToCanonical)//.scalar//SeparateMetric[]//ToCanonical//ContractMetric)//.identity/.scalar

beta4=MakeRule[{β4[],-(3/32)cetf[]-(1/16)dtfdtf[]+(1/128)cc[]cc[]}];

rA equation

RrA=(1/2) (E^(-2 β)) (∂_r)({{g, ({{ ,  }, {A, B}})}}) (∂_r)({{U, ({{B}, { }})}})+(1/4) (E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) ({{g, ({{F, G}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {F, G}})}}) (∂_r)({{U, ({{B}, { }})}})-(E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) (∂_r)({{U, ({{B}, { }})}}) (∂_r)β-(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_r)(∂_A)({{g, ({{ ,  }, {B, F}})}})-(∂_r)(∂_A)β+(1/2) (E^(-2 β)) ({{g, ({{ ,  }, {A, B}})}}) (∂_r)(∂_r)({{U, ({{B}, { }})}})+(1/4) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {F, H}})}}) (∂_A)({{g, ({{ ,  }, {B, G}})}})+(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {B, F}})}}) (∂_A)β-(1/2) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, H}})}}) (∂_F)({{g, ({{ ,  }, {B, G}})}})+(1/2) ({{g, ({{B, F}, { ,  }})}}) (∂_F)(∂_r)({{g, ({{ ,  }, {A, B}})}})+(1/4) ({{g, ({{B, F}, { ,  }})}}) ({{g, ({{G, H}, { ,  }})}}) (∂_r)({{g, ({{ ,  }, {A, H}})}}) (∂_G)({{g, ({{ ,  }, {B, F}})}});
RrAexp=RrA//.betaexp//.Uexp//.bondi//.metricexp//.bondi;

Fixing (U1^A)

SeriesCoefficient[RrAexp,{r,Infinity,1}]//ToCanonical

u1=MakeRule[{U1[A],2Exp[2β0[]]PD[A][β0[]]},MetricOn->{A}];

Fixing (U2^A)

u2a=SeriesCoefficient[RrAexp,{r,Infinity,2}]//.u1/.beta1//.scalar//ToCanonical

(ChangeCovD[u2a,PD,CD]//ChristoffelToMetric//ToCanonical//ReplaceDummies//ContractMetric)/.tf

u2=MakeRule[{U2[A],-Exp[2β0[]](c[A,B]PD[-B][β0[]]+(1/2)CD[-B][c[A,B]])},MetricOn->{A}];

We keep going on like this. Demanding that the Einstein equations at each order we get various relations.

Of course more technicalities appear and we deal with them as they arise.

But, the idea is clear - we keep moving brute force.