My nephew is currently learning General Relativity. I see a lot of assorted links on the wolfram library, various packages, and such things, but I know current versions of Mathematica has built in functionality concerning tensors. Most of the books I've found are outdated or very expensive low volume prints.
Hoping for some guidance here as to the best learning path, ebook or courses, something unified and accessible to an undergraduate.
I would like to make a few comments on this subject because I think there is still good work that can be done toward better tensor or differential geometry applications in Mathematica.
I have just finished working through all the help pages for the Mathematica symbolic tensors and I believe the routines are very significant and useful. They are especially useful at handling abstract tensors, general symmetries and canonicalization (or simplification) of tensor expressions. On the other hand it is weak on nice notation and doesn't even mention a metric. A disadvantage of matrices and arrays is that they don't carry context. How are various levels of an array associated with physical or geometric quantities. Should a matrix be transposed? Or inverted? When contracting, how are covariant and contravariant components distinguished? Or transformed?
Index notation goes a long way to solving the context problem. Tensorial allows users to use coordinate symbols for indices and to adorn or color them for various coordinate systems. It is also very friendly for writing indexed tensor expressions and doing basic calculations. Tensorial also has facilities for writing tensor expressions that can be converted to Mathematica arrays. I used it to work through all the examples and exercises in an introductory GR text. And indices are still the most common notation. Nevertheless, the whole idea of putting all the structure information on scalar quantities is a bit crazy. Mathematica sorts them. It is very difficult to canonicalize and simplify general tensor expressions. The Mathematica approach is much better at that. Also, index notation makes it difficult to distinguish between abstract and concrete tensors. With the Mathematica routines you can define and do manipulation of abstract tensors without ever mentioning components.
Another approach is to use Grassmann algebra. For some time I've been working with John Browne's GrassmannAlgebra application. He has built up a strong axiomatic system and Mathematica code that goes from the basic exterior product to hyper-complex algebras, including Clifford algebra, quaternions and even sedtonions. I was easily able to implement symbolic quaternions with his application. Grassmann algebra carries context and structure with the product symbols (as does Mathematica) and with the presence of vectors, either basis vectors or symbolic abstract vectors.
I've been working with John to improve the interface and to extend GrassmannAlgebra to GrassmannCalculus. I've written routines that transition between Grassmann algebra expressions and the Mathematica tensor arrays. I'm trying to reach a state such that the application would work smoothly with a book such as John M. Lee's "Introduction to Smooth Manifolds". But there is much work to do and we could greatly benefit from the help of anyone with a serious interest in this field.
Yes. It handles them, and prints them so they look right and it can show either the symbolic form, or actually carry it out if you have specified things like the metric tensor, etc. It can also handle Einstein summations. I could send you a notebook with some examples if you give me your email. I would send a pdf; since you don't have the package.
My e-mail address is in my profile.
I would strongly recommend David Park and Renan Cabrera's Tensorial package. There is a bit of a learning curve, but if you use the included documentation along with a set of notes on GR from David, which I think he would be happy to send you, you can get there quickly. One huge advantage of Tensorial over the built-in Tensor package is that the superscript/subscript notation looks the way it does in texts. If you would like more information about this, contact me. The website for Tensorial website is http://home.comcast.net/~djmpark/TensorialPage.html. I would also highly recommend Tom Moore's book: http://amazon.com/General-Relativity-Workbook-Thomas-Moore/dp/1891389823.
When you say the package handles superscript/subscript notation, do you mean that it handles covariant and contravariant coordinates?
There are some Mathematica programs implementing GR calculations at this link: