# Maple 13 tensor package

1. Jan 22, 2010

### Orion1

I attempted to use the Maple 13 'tensor' package to solve the $G_{rr}[/tex] component of the Einstein_tensor for a General Relativity generic metric for which the solution is already known. General Relativity generic metric: (reference 2 - eq. 1) $$c^{2} d\tau^{2} = e^{\nu(r)} dt^{2} - e^{\lambda(r)} dr^{2} - r^2 d\theta^{2} - r^2 \sin^2 \theta d\phi^2$$ I used the exact same source code listed in the Maple 13 software help index and reference 1, except the definitions of the $$g_{11}$$ and $$g_{22}$$ matrix elements. Code (Text): > with(tensor); coord := [t, r, th, ph]; g_compts := array(symmetric, sparse, 1 .. 4, 1 .. 4); g_compts[1, 1] := exp(nu(r)); g_compts[2, 2] := -exp(lambda(r)); g_compts[3, 3] := -r^2; g_compts[4, 4] := -r^2*sin(th)^2; g := create([-1, -1], eval(g_compts)); ginv := invert(g, 'detg'); D1g := d1metric(g, coord); D2g := d2metric(D1g, coord); Cf1 := Christoffel1(D1g); RMN := Riemann(ginv, D2g, Cf1); RICCI := Ricci(ginv, RMN); RS := Ricciscalar(ginv, RICCI); Estn := Einstein(g, RICCI, RS) The Maple 13 'tensor' package generated this solution for the [itex]G_{rr}$ component:
$$G_{rr} = \frac{- r \nu'(r) + e^{\lambda(r)} - 1}{r^2}$$

However, the correct solution is: (reference 2 - eq. 4)
$$G_{rr} = \frac{e^{-\lambda(r)} (-r \nu'(r) + e^{\lambda(r)} - 1)}{r^2}$$

Can anyone here identify any algorithmic error in my source code?

Reference:

Last edited by a moderator: Apr 24, 2017
2. Jan 25, 2010

### Orion1

Mathematica Einsteintensor package...

Schwarzschild metric: (reference 2 - eq. 1)
$$c^{2} d\tau^{2} = e^{\nu(r)} dt^{2} - e^{\lambda(r)} dr^{2} - r^2 d\theta^{2} - r^2 \sin^2 \theta d\phi^2$$

Mathematica 'Einsteintensor' package source code:
Code (Text):
<< einsteintensor.m
x = {t, r, \[Theta], \[Phi]}
(metric = {{\[ExponentialE]^\[Nu][r]*c^2, 0, 0,
0}, {0, -\[ExponentialE]^\[Lambda][r], 0, 0}, {0, 0, -r^2,
0}, {0, 0, 0, -r^2*Sin[\[Theta]]^2}}) // MatrixForm
Simplify[(Einstein =
Inverse[metric].Simplify[EinsteinTensor[metric, x]]) //
MatrixForm]
Mathematica 6 'Einsteintensorr' package generated this solution for the $G_{11}$ component:
$$G_{11} = \frac{e^{-\lambda} (-r \nu' + e^{\lambda} - 1)}{r^2}$$

According to reference 2 - eq. 4, the solution solution for the $G_{11}$ component:
$$G_{11} = \frac{e^{-\lambda} (r \nu' - e^{\lambda} + 1)}{r^2}$$

Which package is generating the correct solution?

Reference:
http://library.wolfram.com/infocenter/MathSource/162/"

Last edited by a moderator: May 4, 2017
3. Jan 27, 2010

### Orion1

Mathematica 6 Einstein Tensor package...

Code (Text):
(* Package written by
Pekka Janhunen
Finnish Meteorological Institute
Geophysics Dept. *)

BeginPackage["EinsteinTensor"]

EinsteinTensor::usage = "EinsteinTensor[g,x] with g a nxn-matrix
(the metric with lower indices) and x n-vector (the coordinates)
gives the Einstein tensor (a nxn-matrix) with lower indices."

Begin["Private`"]

EinsteinTensor[metric_,x_]:=
Block[ {Dim,Metric, PreChristoffel, Christoffel, Riemann,
PreRiemann, Ricci, CurvatureScalar,
sigma, mu, nu, alpha, beta, gamma},
Dim = Length[x];
Metric = Simplify[Inverse[metric]];
(* Metric with upper indices *)
PreChristoffel =
Table[ D[metric[[gamma,alpha]],x[[beta]]]
+ D[metric[[beta,gamma]],x[[alpha]]]
- D[metric[[alpha,beta]],x[[gamma]]],
{gamma,Dim}, {alpha,Dim}, {beta,Dim} ];
(* The "lower index part" of Christoffel symbols *)
PreChristoffel = Simplify[PreChristoffel];
Christoffel = (1/2) Metric . PreChristoffel;
(* The full Christoffel symbols *)
Christoffel = Simplify[Christoffel];
PreRiemann =
Table[ D[Christoffel[[sigma,alpha,nu]],x[[mu]]]
+ Sum[Christoffel[[gamma,alpha,nu]]
Christoffel[[sigma,gamma,mu]],
{gamma,Dim} ],
{sigma,Dim}, {alpha,Dim}, {mu,Dim}, {nu,Dim} ];
(* PreRiemann has to be antisymmetrized to yield
Riemann tensor: *)
Riemann = Table[ PreRiemann[[sigma,alpha,mu,nu]]
- PreRiemann[[sigma,alpha,nu,mu]],
{sigma,Dim}, {alpha,Dim},
{mu,Dim}, {nu,Dim} ];
Ricci = Table[ Sum[Riemann[[sigma,alpha,sigma,beta]],
{sigma,Dim}],
{alpha,Dim}, {beta,Dim} ];
CurvatureScalar = Sum[ Metric[[alpha,beta]]
Ricci[[alpha,beta]],
{alpha,Dim}, {beta,Dim} ];
(* Return Einstein tensor: *)
Ricci - (1/2) CurvatureScalar metric ]

End[]

EndPackage[]

Print[{EinsteinTensor}]

The output appears to be in the form:
$$G^i_j$$

$$G^1_1 = g^{1i}G_{1i} = g^{11}G_{11}$$

The Mathematica 6 'Einstein Tensor' package generated this solution for the $G^i_j$ component:
$$G^1_1} = \frac{e^{-\lambda} (-r \nu' + e^{\lambda} - 1)}{r^2}$$

The correct $G^1_1$ component is:
$$G^1_1} = - \frac{e^{- \lambda} (-r {\nu}' + e^{\lambda} - 1)}{r^2}$$

Reference:
http://library.wolfram.com/infocenter/MathSource/162/"

Last edited by a moderator: Apr 24, 2017
4. Jan 28, 2010

### Orion1

Mathematica Ricci tensor:
$$R_{ab} = R^c_{acb}$$

Maple Ricci tensor:
$$R_{ac} = R^b_{acb}$$

Package criteria:
$$R^{Mathematica} = -R^{Maple}$$

$$G^{Mathematica}_{ij} = - G^{Maple}_{ij}$$

The different signs are due to the use of different Ricci tensors.

Mathematica generated output:
$$G^1_1 = g^{1i}G_{1i}=g^{11}G_{11} = -e^{-\lambda}\frac{ r{\nu}' - e^{\lambda} + 1}{r^2} = \frac{e^{-\lambda} (-r{\nu}'+ e^{\lambda} - 1)}{r^2}$$

Maple generated output:
$$G_{11} = \frac{- r \nu' + e^{\lambda} - 1}{r^2}$$