Maple Is there an error in the Maple 13 'tensor' package algorithm?

  • Thread starter Thread starter Orion1
  • Start date Start date
  • Tags Tags
    Maple Tensor
AI Thread Summary
The discussion centers on a potential error in the Maple 13 'tensor' package when calculating the G_{rr} component of the Einstein tensor for a specific general relativity metric. The Maple output for G_{rr} differs from the expected correct solution, indicating a possible algorithmic issue. The user provided their source code and noted discrepancies between the Maple and Mathematica packages, particularly in the handling of metric components. The conversation seeks to identify whether there is indeed an error in the Maple algorithm or if the discrepancy arises from differences in the mathematical conventions used by the two software packages. The thread highlights the importance of verifying computational results in general relativity applications.
Orion1
Messages
961
Reaction score
3

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.<br /> <br /> General Relativity generic metric: (reference 2 - eq. 1)<br /> 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<br /> <br /> 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.<br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> <i class="fa--xf fal fa-code "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/light.svg?v=1756418028#code"></use></svg></i> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code>&gt; 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, &#039;detg&#039;); 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)</code></pre> </div> </div><br /> The Maple 13 &#039;tensor&#039; package generated this solution for the G_{rr} component:<br /> G_{rr} = \frac{- r \nu&amp;#039;(r) + e^{\lambda(r)} - 1}{r^2}<br /> <br /> However, the correct solution is: (reference 2 - eq. 4) <br /> G_{rr} = \frac{e^{-\lambda(r)} (-r \nu&amp;#039;(r) + e^{\lambda(r)} - 1)}{r^2}<br /> <br /> Can anyone here identify any algorithmic error in my source code?<br /> [/Color]<br /> Reference:<br /> <a href="http://www.maplesoft.com/support/help/AddOns/view.aspx?path=tensor/Einstein&quot;" target="_blank" class="link link--external" rel="nofollow ugc noopener">http://www.maplesoft.com/support/help/AddOns/view.aspx?path=tensor/Einstein&quot;</a><br /> &quot;www.new.dli.ernet.in/rawdataupload/upload/insa/INSA_2/20005a87_195.pdf&quot;[/URL]
 
Last edited by a moderator:
Physics news on Phys.org
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:
ToFileName[{$TopDirectory, "AddOns", "Applications"}]
<< 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&#039; + 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&#039; - e^{\lambda} + 1)}{r^2}

Which package is generating the correct solution?
[/Color]
Reference:
http://library.wolfram.com/infocenter/MathSource/162/"
http://www.new.dli.ernet.in/rawdataupload/upload/insa/INSA_2/20005a87_195.pdf"
 
Last edited by a moderator:
Mathematica 6 Einstein Tensor package...



Code:
(* 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&#039; + e^{\lambda} - 1)}{r^2}

The correct G^1_1 component is:
G^1_1} = - \frac{e^{- \lambda} (-r {\nu}&#039; + e^{\lambda} - 1)}{r^2}
[/Color]
Reference:
http://library.wolfram.com/infocenter/MathSource/162/"
 
Last edited by a moderator:

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}&#039; - e^{\lambda} + 1}{r^2} = \frac{e^{-\lambda} (-r{\nu}&#039;+ e^{\lambda} - 1)}{r^2}

Maple generated output:
G_{11} = \frac{- r \nu&#039; + e^{\lambda} - 1}{r^2}
[/Color]
 
Back
Top