Load packages

In[]:=
<<xAct`xTensor`​​<<xAct`TexAct`​​<<xAct`xTras`​​<<xAct`xCoba`

Clear variables

In[]:=
ClearAll["Global`*"];​​UndefTensor@$Tensors;​​UndefMetric@$Metrics;​​UndefConstantSymbol[dim];​​NotebookDelete[Cells[EvaluationNotebook[],GeneratedCell->True]]

Initialize fundamental quantities

In[]:=
(*Dimensionofthemanifold*)​​DefConstantSymbol[dim];​​$Assumptions=dim>2;
** DefConstantSymbol: Defining constant symbol dim.
In[]:=
(*Manifold*)​​DefManifold[M,dim,Join[IndexRange[a,e],IndexRange[i,n]]];
** DefManifold: Defining manifold M.
** DefVBundle: Defining vbundle TangentM.
In[]:=
(*Lorentzianmetric*)​​DefMetric[-1,g[-a,-b],lc];
** DefTensor: Defining symmetric metric tensor g[-a,-b].
** DefTensor: Defining antisymmetric tensor epsilong[-a,-b].
** DefCovD: Defining covariant derivative lc[-a].
** DefTensor: Defining vanishing torsion tensor Torsionlc[a,-b,-c].
** DefTensor: Defining symmetric Christoffel tensor Christoffellc[a,-b,-c].
** DefTensor: Defining Riemann tensor Riemannlc[-a,-b,-c,-d].
** DefTensor: Defining symmetric Ricci tensor Riccilc[-a,-b].
** DefCovD: Contractions of Riemann automatically replaced by Ricci.
** DefTensor: Defining Ricci scalar RicciScalarlc[].
** DefCovD: Contractions of Ricci automatically replaced by RicciScalar.
** DefTensor: Defining symmetric Einstein tensor Einsteinlc[-a,-b].
** DefTensor: Defining Weyl tensor Weyllc[-a,-b,-c,-d].
** DefTensor: Defining symmetric TFRicci tensor TFRiccilc[-a,-b].
** DefTensor: Defining Kretschmann scalar Kretschmannlc[].
** DefCovD: Computing RiemannToWeylRules for dim dim
** DefCovD: Computing RicciToTFRicci for dim dim
** DefCovD: Computing RicciToEinsteinRules for dim dim
** DefTensor: Defining symmetrized Riemann tensor SymRiemannlc[-a,-b,-c,-d].
** DefTensor: Defining symmetric Schouten tensor Schoutenlc[-a,-b].
** DefTensor: Defining symmetric cosmological Schouten tensor SchoutenCClc[LI[_],-a,-b].
** DefTensor: Defining symmetric cosmological Einstein tensor EinsteinCClc[LI[_],-a,-b].
** DefTensor: Defining weight +2 density Detg[]. Determinant.
** DefParameter: Defining parameter PerturbationParameterg.
** DefTensor: Defining tensor Perturbationg[LI[order],-a,-b].
In[]:=
(*Metricaffinecovariantderivative*)​​DefCovD[cd[-a],Torsion->True,{"|",""}];
** DefCovD: Defining covariant derivative cd[-a].
** DefTensor: Defining torsion tensor Torsioncd[a,-b,-c].
** DefTensor: Defining non-symmetric Christoffel tensor Christoffelcd[a,-b,-c].
** DefTensor: Defining Riemann tensor Riemanncd[-a,-b,-c,d]. Antisymmetric only in the first pair.
** DefTensor: Defining non-symmetric Ricci tensor Riccicd[-a,-b].
** DefCovD: Contractions of Riemann automatically replaced by Ricci.

Set options

In[]:=
$PrePrint=ScreenDollarIndices;​​$RiemannSign=-1​​SetOptions[ToCanonical,UseMetricOnVBundle->g];​​SetOptions[ContractMetric,OverDerivatives->True];
Out[]=
-1

Initialize additional tensors

In[]:=
(*Torsionvector
T
a
*)​​DefTensor[T[-a],M];
** DefTensor: Defining tensor T[-a].
In[]:=
(*
f
a
*)​​DefTensor[f[-a],M];
** DefTensor: Defining tensor f[-a].
In[]:=
(*Shifttensor
a
S
bc
*)​​DefTensor[S[a,-b,-c],M,Symmetric[{-b,-c}]];
** DefTensor: Defining tensor S[a,-b,-c].

Define tensors

In[]:=
(*Shifttensor:
a
S
bc
=
a
δ
b
f
c
+
a
δ
c
f
b
-
g
bc
a
f
*)​​IndexSet[S[a_,-b_,-c_],g[a,-b]f[-c]+g[a,-c]f[-b]-g[-b,-c]f[a]];
(*Metricaffineconnection:
a
Γ
bc
=
a
{
bc
+
1
D-1
T
b
a
δ
c
+
1
D-2
a
S
bc
*)​​rule=IndexRuleChristoffelcd[a_,-b_,-c_],Christoffellc[a,-b,-c]+
1
dim-1
T[-b]g[a,-c]+
1
dim-2
S[a,-b,-c];

Compute curvature related quantities

In[]:=
(*Curvaturetensor*)​​Riemanncd[-c,-d,-b,a]//RiemannToChristoffel;​​%/.rule;​​%//ChristoffelToGradMetric;​​%//Simplification
Intersection
:Nonatomic expression expected at position 2 in {M}⋂g.
Intersection
:Nonatomic expression expected at position 2 in {M}⋂g.
TranslatePerm
::invalid
:InversePerm[$Failed] is not a valid permutation.
​
Throw
:Uncaught Throw[Null] returned to top level.
Out[]=
Hold[Throw[Null]]
In[]:=
RicciScalarcd[]
Out[]=
RicciScalarcd[]