As David Billinghurst mentioned it, I'm indeed maintaining three tensor
algebra packages, atensor/ctensor/itensor.
Atensor is the Algebraic Tensor package, which lets you define an algebra
through its commutation rules. For instance with Atensor, you can define a
quaternionic algebra, a Dirac-algebra, etc. Due to its abstract nature,
atensor is probably more an educational tool than anything else.
Ctensor is the Component Tensor package: it treats tensors as
multidimensional arrays of values. It has several built-in functions for the
tensors of general relativity, to compute things in component form such as
the Christoffel-symbols, the Riemann tensor, or the Ricci and Weyl tensors.
Itensor is the Indicial Tensor package. Personally, I find this package the
most useful and versatile of the three. Instead of manipulating tensor
components, it focuses on the algebraic properties of indexed expressions.
It knows about index contraction, and it can handle expressions containing
ordinary derivatives. Because this package really doesn't care at all about
tensor components, it is very "lightweight": it can handle fairly
complicated tensor expressions that would be a computational nightmare in
component form.
Though these are separate packages, there's some integration between them.
It is possible to assign to an indicial expression in itensor the components
of a ctensor object, and it is also possible to convert an indicial itensor
expression into a ctensor program that would compute the components of that
expression. Because of this, one potential way to use the packages is to
develop and simplify a tensor expression using itensor first, and then when
it's sufficiently simple, either convert the result to a ctensor program, or
assign components to the tensors and evaluate them to get the final result.
Ignoring components in the intermediate stages and focusing only on the
algebraic properties of the indexed objects themselves is what makes this
approach particularly powerful.
What I've done to these packages (other than dusting them off and fixing
some incompatibilities) is this: first, atensor was missing altogether, so I
reimplemented it using the commercial MACSYMA manual and examples as
specifications. Second, I changed function and variable names in all three
packages to agree with those in the commercial MACSYMA version, for
compatibility. Third, I significantly enhanced itensor, in order to make it
able to handle tensors that are not symmetric (the original version had some
serious conceptual shortcomings that made it lose track of index ordering in
complicated expressions involving non-symmetric tensors.)
I also built a number of demo files. If you use the latest CVS version of
Maxima, you should be able to do a demo(tensor) and get a menu of all
available demos. (If you use 5.9.1, you should still be able to obtain the
new tensor package files from the Maxima Web site and install it on your
system; the latest tensor packages does not require 5.9.2, they run fine on
5.9.1 also.) And, perhaps a bit pretentiously, I also wrote a paper in which
I summarized the work I've done: http://www.arxiv.org/abs/cs/0503073. It
contains reference material not found anywhere else, so it may prove useful.
If you happen to give these packages a try, I'd most appreciate your
feedback. So far, I've only received substantive feedback from one user,
Valery Pipin, and his help proved absolutely invaluable (for instance, since
he's working with 3-dimensional equations with an independent time
parameter, it made me realize a serious conceptual flaw that existed in
itensor previously: it redefined the derivative operator such that the ONLY
differentiation available for tensor expressions was coordinate
differentiation, differentiation by an independent parameter was no longer
possible. Needless to say, this issue is now fixed.) Anyway, different
people are likely to find different bugs, so I'd most value your feedback.
Viktor
-----Original Message-----
From: maxima-admin@math.utexas.edu [mailto:maxima-admin at math] On
Behalf Of Tapan Naskar
Sent: Thursday, July 28, 2005 12:09 AM
To: maxima@math.utexas.edu
Subject: GRTensor
Hi
Is there any GRTensor/MathTensor like package in maxima?
Regards
Tapan
_______________________________________________
Maxima mailing list
Maxima@www.math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima