Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Maple 13 tensor package

  1. Jan 22, 2010 #1

    I attempted to use the Maple 13 'tensor' package to solve the [itex]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)
    [tex]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[/tex]

    I used the exact same source code listed in the Maple 13 software help index and reference 1, except the definitions of the [tex]g_{11}[/tex] and [tex]g_{22}[/tex] 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}[/itex] component:
    [tex]G_{rr} = \frac{- r \nu'(r) + e^{\lambda(r)} - 1}{r^2}[/tex]

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

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

    Reference:
    http://www.maplesoft.com/support/help/AddOns/view.aspx?path=tensor/Einstein"
    "www.new.dli.ernet.in/rawdataupload/upload/insa/INSA_2/20005a87_195.pdf"[/URL]
     
    Last edited by a moderator: Apr 24, 2017
  2. jcsd
  3. Jan 25, 2010 #2
    Mathematica Einsteintensor package...


    Schwarzschild metric: (reference 2 - eq. 1)
    [tex]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[/tex]

    Mathematica 'Einsteintensor' package source code:
    Code (Text):
    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 [itex]G_{11}[/itex] component:
    [tex]G_{11} = \frac{e^{-\lambda} (-r \nu' + e^{\lambda} - 1)}{r^2}[/tex]

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

    Which package is generating the correct solution?

    Reference:
    http://library.wolfram.com/infocenter/MathSource/162/"
    http://www.new.dli.ernet.in/rawdataupload/upload/insa/INSA_2/20005a87_195.pdf" [Broken]
     
    Last edited by a moderator: May 4, 2017
  4. Jan 27, 2010 #3
    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:
    [tex]G^i_j[/tex]

    [tex]G^1_1 = g^{1i}G_{1i} = g^{11}G_{11}[/tex]

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

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

    Reference:
    http://library.wolfram.com/infocenter/MathSource/162/"
     
    Last edited by a moderator: Apr 24, 2017
  5. Jan 28, 2010 #4

    Mathematica Ricci tensor:
    [tex]R_{ab} = R^c_{acb}[/tex]

    Maple Ricci tensor:
    [tex]R_{ac} = R^b_{acb}[/tex]

    Package criteria:
    [tex]R^{Mathematica} = -R^{Maple}[/tex]

    [tex]G^{Mathematica}_{ij} = - G^{Maple}_{ij}[/tex]

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

    Mathematica generated output:
    [tex]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}[/tex]

    Maple generated output:
    [tex]G_{11} = \frac{- r \nu' + e^{\lambda} - 1}{r^2}[/tex]
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Maple 13 tensor package
Loading...