A Mathematica package for doing tensor calculations in differential geometry
July 12, 2015
|Ricci is a Mathematica package for
doing symbolic tensor computations that arise in differential geometry.
It has the following features and capabilities:
Limitations: Ricci currently does not support computation of explicit
values for tensor components in coordinates, or derivatives of tensors
depending on parameters (as in geometric evolution equations or calculus
of variations), although support for these is planned for a future release.
Ricci also has no explicit support for general relativity, or for other
mathematical physics or engineering applications, and none is planned.
If you are interested in such support, I recommend that you consider the
commercial package MathTensor, which is far more extensive than Ricci,
and provides all these capabilities and more. MathTensor is available from
Manipulation of tensor expressions with and without indices
Implicit use of the Einstein summation convention
Correct manipulation of dummy indices
Display of results in mathematical notation, with upper and lower indices
Automatic calculation of covariant derivatives
Automatic application of tensor symmetries
Riemannian metrics and curvatures
Any number of vector bundles with user-defined characteristics
Names of indices indicate which bundles they refer to
Complex bundles and tensors
Conjugation indicated by barred indices
Connections with and without torsion
Disclaimer: Be warned that I make no claims that this is a professional-quality
software package. I have tried to make it as general and error-free as
possible, and I think it is reasonably robust. However, I do most of the
work on this package in my "spare time", with only very limited programming
assistance, so I don't have time to check everything. I will try to fix
any bugs that you encounter.
If you use this package at all, I would appreciate it if you would send
me a message at email@example.com
your experience, and telling me whether you found the package useful or
not. I'd especially like to hear about any bugs, anomalous behavior, things
that look like they should simplify but don't, suggestions for improvement,
things that seem to take longer than they should, etc. If I get e-mail
from you, I'll put you on my mailing list to be informed whenever I release
a new production version.
How to get Ricci
Before you obtain or use Ricci, please read the copyright
notice. Then download the following files:
User's Manual (380K - about 90 pages when printed)
the source file for the latest version of Ricci (291K)
an example of Ricci usage (ASCII, 20K).
A list of all significant changes to Ricci since the first beta release
TeX macros needed for Ricci's TeXForm output (ASCII, 2K)
Once you have downloaded the files, put the source file Ricci.m in the directory
in which you place Mathematica input files. If you plan to use TeXForm
output from Ricci, put Ricci.tex in the directory in which TeX looks for its
Ricci requires Mathematica version 2.0 or greater. The source takes approximately
283K bytes of disk storage, including about 49K bytes of on-line documentation.
I have tested the current version of the package with Mathematica 5.0 under Windows.
Although I haven't tested it in other situations, I know of no reason why it should
not run on any platform using Mathematica 2.0 or later.
To use Ricci, put the Ricci.m source file into a
directory of your own that is accessible to Mathematica. (You may need to change
the value of Mathematica's $Path variable in your initialization file--see
the documentation for the version of Mathematica that you're using.) Then load
the Ricci package by typing the following Mathematica command:
Once you've loaded Ricci into Mathematica, you can type ?name
for information about any Ricci function or command.
Changes in Version 1.53
- Fixed protection error caused by new system symbol
Here's a log of changes in prior versions of Ricci.
Plans for future releases
What follows is an (incomplete) list of capabilities that Ricci does not
currently have, but that I plan to add to some future version. I have no
idea how soon these will be ready, but they're listed in approximately
the order in which I plan to add them.
WYSIWIG input and output under Mathematica 3.0 or higher.
Tensors depending on parameters, such as g[t] or u[s,t], together with
support for computing derivatives of tensor expressions with respect to
the parameters. This will be useful for studying evolution equations in
geometry, and for computing variational equations of geometric functionals.
Tensors whose rank is a symbolic constant, such as n-forms or k-forms on
an n-manifold. Along with this, I will implement Riemannian volume elements
(what physicists call the Levi-Civita tensor or epsilon tensor) and the
Hodge star operator. The limitation will be that you cannot insert indices
into a tensor expression unless its rank is an explicit nonnegative integer.
Computation of explicit values for the components of tensor expressions
in terms of local coordinates.
Kähler metrics, and the holomorphic and antiholomorphic parts of the
exterior derivative (Cauchy-Riemann operators).
Vector-valued differential forms, including wedge products and covariant
John M. Lee
University of Washington
Department of Mathematics
Seattle, WA 98195-4350
Phone: (206) 543-1735
Fax: (206) 543-0397