Riemannian Geometry & Tensor Calculus @ Mathematica



 

  Description

    This package introduces definitions for tensor calculations in Riemannian Geometry. To begin a calculation the user must specify a Riemannian space by giving:

        (1) a list of symbols (= coordinates),
        (2) a symmetric matrix of functions of these coordinates (= metric tensor) and
        (3) a list of simplification rules (optional).

    The main routine in the package -- RGtensors[metric_, coordinates_] -- then computes explicit expressions for all common Riemannian Geometry tensors (Riemann, Ricci, Einstein, Weyl) and tests if the space belongs to any of the following categories: Flat, Conformally Flat, Ricci Flat, Einstein Space or Space of Constant Curvature. Each tensor is stored as a nested list (of its components) under an appropriate global name.

     The following functions for operating on these tensors are defined: Raise/Lower indices, Contract (multiple) indices, Covariant and Lie Differentiation and Covariant Divergence. These functions, together with the built-in functions Outer (giving tensor products) and Transpose (index rearrangement), provide the necessary tools for performing all common tensor operations on the computer. Several examples of the use of these functions on tensors computed using different metrics are given. A more detailed description of the capabilities of RGTC can be found in this article.

    In addition to the code and the examples, the notebook RGTC.nb contains Instructions and Usage Tips. Some more complicated examples are given here.

    Versions after (3.6.7) have a new routine for classifying the Weyl and Ricci tensors in any frame.

    The package requires Mathematica 3.0 or later.



 

  Version History

    Beginning with version 2.5, tensor components can be calculated with respect to an arbitrary frame, and approximate calculations (series expansions) can be carried out. Version 2.7.8 significantly improves these capabilities.

    Version 3.1.8 introduces definitions for the NP quantities, three new auxiliary functions, and two palettes for entering the operators/symbols used. It also has minor speed improvements, corrects a rare bug that can affect calculations with series, and gives more informative messages when something goes wrong.

    Version 3.2.5 improves the handling of complicated expressions and corrects an error in HStar when acting on 0-forms.

    Version 3.2.8 corrects another error in HStar when acting on certain Series expressions.

    Important Note: A change in coding introduced in version 3.2.5 (and 3.2.8) prevents testing for conformal flatness of 3-dimensional spaces. Thus versions 3.2.5 and 3.2.8 of RGtensors will not print "Conformally Flat" when appplied to a conformally flat 3-dim metric, possibly leading to erroneous conclusions. This was corrected in version 3.3.0.

    Version 3.5.1 is a Mathematica 6 - compatible update. In addition, it introduces three new functions for calculating Lie derivatives and the Laplacian of tensors as well as the norm of the gradient of scalars. It also has several minor improvements.

    Version 3.5.3 corrects an error affecting certain complete contractions of equal rank tensors using multiDot (complete contractions of the Riemann tensor in the examples are unaffected -- that's why this error was not discovered earlier!). Also, Contract and multiDot can now be used with arbitrarily defined nested lists, different levels having different dimensions, provided, of course, that the indices to be summed have the same dimension.

    Version 3.5.8 corrects an error that appears when covDiv acts on some series expansions.

    Version 3.5.9 changes the definition of LieD so that it gives correct results in any frame (original definition was valid in the coordinate frame only).

    Version 3.6.0 corrects a typing error in 3.5.8 that caused HStar and eta in an NP frame to give results with an extra overall factor of i .

    Version 3.6.7 introduces a new routine (Classify) for classifying the Weyl and Ricci tensors in any frame. It also introduces new functions (metric and Plebanski) for constructing the metric from the line-element and the Plebanski tensor from any symmetric tensor.

    The present version 3.7.0 extends the definition of Plebanski to include the case of the Weyl-type tensor constructed from two symmetric tensors.



 

   Download (Version 3.7.0 - July 2009)



 

   Additional Examples can be found here.

 

 

For comments, questions or suggestions please contact the author at sbonano@inp.demokritos.gr
 
 

advanced web statistics

Last modified  2009-07-21