Electric/magnetic Weyl tensors and the 3+1 decomposition

Author: © Leo C. Stein (leo.stein@gmail.com)
Date: 2015 Sept. 21, updated Oct. 29, updated 2016 Sept. 21, updated 2017 Jan. 8;
  2018 March 26 for inclusion into the xAct-contrib/examples repository

The purpose of this notebook is to find expressions for the electric and magnetic parts of Weyl (specific to dim=3+1) in terms of 3+1 variables. This notebook also demonstrates some of the n+1 decomposition functions.
See a writeup/explanation of some of these calculations at this companion web site.

0. Setup

Needs["xAct`xTensor`"]

$PrePrint=ScreenDollarIndices;

$DefInfoQ=False;

DefManifold[M,4,Complement[IndexRange[a,z],{g,h,n}]]

DefMetric[-1,g[-a,-b],CD]

PrintAs[RiemannCD]^="\!\(\*SuperscriptBox[\(\), \((4)\)]\)R";
PrintAs[RicciCD]^="\!\(\*SuperscriptBox[\(\), \((4)\)]\)R";
PrintAs[RicciScalarCD]^="\!\(\*SuperscriptBox[\(\), \((4)\)]\)R";
PrintAs[WeylCD]^="\!\(\*SuperscriptBox[\(\), \((4)\)]\)C";
PrintAs[epsilong]^="ϵ";

Minimal definitions for 3+1 splitting:

DefTensor[n[a],M]
AutomaticRules[n,MakeRule[{n[a]n[-a],-1}]]
AutomaticRules[n,MakeRule[{g[-a,-b]n[a]n[b],-1}]]

$ExtrinsicKSign=-1;
$AccelerationSign=-1;

DefMetric[1,h[-a,-b],cd,SymbolOfCovD->{"|","D"},InducedFrom->{g,n}]

Our convention:

g[-a,-b]
%//MetricToProjector

PrintAs[epsilonh]^="ϵ";

PrintAs[ExtrinsicKh]^="K";

We don’t actually need a lapse function in this notebook, but some 3+1 functions give you the acceleration, which some people prefer in terms of a lapse

DefTensor[α[],M]

LapseRule={Accelerationn[a_]:>cd[a][α[]]/α[]};

0.1 Decomposition of 4-epsilon

Here is the relation between the 4-epsilon and the 3-epsilon. Convention (agrees with Alfonso):

ThreeEpsToFourEpsRule={epsilonh[a_,b_,c_]:>Module[{d},n[d]epsilong[-d,a,b,c]]}

More work needed for the other way around:

nDotThreeEpsRule=MakeRule[{n[d]epsilong[-d,a,b,c],epsilonh[a,b,c]},MetricOn->All,ContractMetrics->True];

FourEpsToThreeEpsRule={epsilong[a_,b_,c_,d_]:>-4Antisymmetrize[n[a]epsilonh[b,c,d],{a,b,c,d}]};

epsilong[-a,-b,-c,-d]
%/.FourEpsToThreeEpsRule//ToCanonical

n[d]epsilong[-d,a,b,c]
%/.FourEpsToThreeEpsRule//ToCanonical
%%/.nDotThreeEpsRule

1. E, B decomposition of Weyl

We need two spatial tensors, both symmetric and tracefree (w.r.t. either the 4-metric or 3-metric)

DefTensor[EE[-a,-b],M,Symmetric[{-a,-b}],OrthogonalTo->{n[a]},ProjectedWith->{h[a,-c]},PrintAs->"E"]
DefTensor[BB[-a,-b],M,Symmetric[{-a,-b}],OrthogonalTo->{n[a]},ProjectedWith->{h[a,-c]},PrintAs->"B"]

Tracefree rules:

AutomaticRules[EE,MakeRule[{EE[-a,-b]h[a,b],0}]]
AutomaticRules[EE,MakeRule[{EE[-a,-b]g[a,b],0}]]
AutomaticRules[EE,MakeRule[{EE[a,-a],0}]]
AutomaticRules[BB,MakeRule[{BB[-a,-b]h[a,b],0}]]
AutomaticRules[BB,MakeRule[{BB[-a,-b]g[a,b],0}]]
AutomaticRules[BB,MakeRule[{BB[a,-a],0}]]

Here is the key conversion from Weyl to E/B in terms of the 3+1 split.

WeylToEBRule={WeylCD[a_,b_,c_,d_]:>2Module[{e,f},
Antisymmetrize[Antisymmetrize[
4n[a]EE[b,d]n[c]+g[a,c]EE[d,b]-g[b,c]EE[d,a]
-epsilong[a,b,e,f]n[-e]n[c]BB[d,-f]-epsilong[c,d,e,f]n[-e]n[a]BB[b,-f]
,{a,b}],{c,d}]]};

This agrees with Alfonso’s calculation:

WeylCD[-a,-b,-c,-d]
%/.WeylToEBRule/.FourEpsToThreeEpsRule//ToCanonical;
Collect[%//MetricToProjector//ToCanonical,{EE[__]}]

Another way to write this even more compactly is using a projector ({{a, c}, {b, d}}) onto the symmetries of Riemann,
  (Subscript[C, abcd])=4({{a, c}, {b, d}}) ((Subscript[E, ac])((Subscript[h, bd])+(Subscript[n, b])(Subscript[n, d]))+(Subscript[ϵ, abe])(Subscript[n, d])((Subscript[B, c])^e))

4ImposeSymmetry[
EE[-a,-c](h[-b,-d]+n[-b]n[-d])+epsilonh[-a,-b,-e]n[-d]BB[-c,e],
{-a,-b,-c,-d},RiemannSymmetric[{1,2,3,4}]]//ToCanonical;
Collect[%,{EE[__]}]

Check that we have the correct properties for the above expression. First, symmetries:

WeylCD[-a,-b,-c,-d]+WeylCD[-b,-a,-c,-d]/.WeylToEBRule//ToCanonical
WeylCD[-a,-b,-c,-d]+WeylCD[-a,-b,-d,-c]/.WeylToEBRule//ToCanonical
WeylCD[-a,-b,-c,-d]-WeylCD[-c,-d,-a,-b]/.WeylToEBRule//ToCanonical

Now tracefree (only need to check (a,c) because of above symmetries):

WeylCD[-a,-b,-c,-d]/.WeylToEBRule
g[a,c]%//ContractMetric//ToCanonical

Now show that normalization is correct:

n[a]n[c]WeylCD[-a,-b,-c,-d]/.WeylToEBRule//ToCanonical

(n[e]n[c](1/2)epsilong[-e,-f,a,b]WeylCD[-a,-b,-c,-d]/.WeylToEBRule)//ContractMetric//ToCanonical

2. Scalar curvature invariants, decomposed

2.1 Kretschmann in terms of E, B

RiemannCD[a,b,c,d]RiemannCD[-a,-b,-c,-d]
%//RiemannToWeyl//ContractMetric//ToCanonical
%/.WeylToEBRule//ContractMetric//ToCanonical
%%%==%

Obviously, if we have 4Ricci=0, then this is just Weyl^2:

WeylCD[a,b,c,d]WeylCD[-a,-b,-c,-d]
%/.WeylToEBRule//ContractMetric//ToCanonical
%%==%

2.2 Pontryagin in terms of E, B:

WeylCD[-a,-b,-c,-d](1/2)epsilong[a,b,e,f]WeylCD[-e,-f,c,d]
%/.WeylToEBRule//ContractMetric//ToCanonical
%%==%

2.3 J invariant (WARNING: slow!)

These expressions come from the notebook CurvatureScalarInvariants.nb. First the real part of the J invariant.

(1/96)WeylCD[-a,-b,e,f]WeylCD[a,b,c,d]WeylCD[-c,-d,-e,-f]
Jreal=%/.WeylToEBRule//ContractMetric//ToCanonical

The imaginary part of J also has the dual Weyl tensor; because of the large number of indices, this contraction takes a long time (about 7 minutes on my laptop)

(1/192)epsilong[-e,-f,-i,-j]WeylCD[-a,-b,e,f]WeylCD[a,b,c,d]WeylCD[-c,-d,i,j]
Timing[Jimag=%/.WeylToEBRule//ContractMetric//ToCanonical]

Show that the J invariant can be written as
  J=((-1)/6)Tr[(ℰ^3)]
where the complex ℰ tensor is
  ℰ = E + i B.

Jreal+I Jimag//ToCanonical
-(1/6)(EE[a,-b]+I BB[a,-b])(EE[b,-c]+I BB[b,-c])(EE[c,-a]+I BB[c,-a])//ToCanonical
%==%%

3. E, B from the Gauss-Codazzi equations

3.1 First, the E equation:

ProjectWith[h][RiemannCD[-a,-c,-b,-d]]
GaussCodazzi[%,h]//ContractMetric
GivesEEEq=(g[c,d](%==%%)//ContractMetric)

(GivesEEEq//RiemannToWeyl)/.WeylToEBRule//ContractMetric//ToCanonical
EE[-a,-b]==(EE[-a,-b]/.IndexSolve[%,EE[-a,-b]])
EFromKRRule=MakeRule[Evaluate[List@@%]];

Above we see that we need not just K and the three-Ricci (Thricci!), but also the 4-Ricci and some of its 3-projections.

On the other hand, here’s what the “electric part of Riemann” looks like:

h[-a,e]h[-b,f]n[c]n[d]RiemannCD[-e,-c,-f,-d]
(%//RiemannToWeyl)/.WeylToEBRule//ContractMetric//ToCanonical
%/.EFromKRRule//ToCanonical
MapAt[ProjectorToMetric,%,{5,3}]//ContractMetric

3.2 Now the B equation.

ProjectWith[h][n[a]RiemannCD[-a,-b,-c,-d]]
GaussCodazzi[%,h]/.Projectorh->ProjectWith[h]//ContractMetric
GivesBBEq=epsilonh[-a,b,c]ReplaceDummies[(%==%%)]

(GivesBBEq/.ThreeEpsToFourEpsRule)//RiemannToWeyl//ContractMetric//ToCanonical
%/.WeylToEBRule//ContractMetric//ToCanonical//ProjectorToMetric//ToCanonical
BB[-a,-d]==(BB[-a,-d]/.IndexSolve[%,BB[-a,-d]]//Expand)
(Symmetrize[%,{-a,-d}]//ToCanonical)/.nDotThreeEpsRule//Simplification

Here we do not need the Thricci! The above expression can be written more simply in terms of symmetrizing on (ad):
(Subscript[B, ad])=-(Subscript[ϵ, bc(a])(D^c)((Subscript[K, d)])^b)

BB[-a,-d]==Symmetrize[-epsilonh[-b,-c,-a]cd[c]@ExtrinsicKh[-d,b],{-a,-d}]//Simplification