- #1
- 2,355
- 10
Many of you are probably already familiar with the following phenomena:
Use a computer!
I think it is fairly well known among SA/Ms that a free package which runs under Maple (which is definitely not free), GRTensorII, is extremely powerful and very well suited for computations with explicit spacetimes. (Since we can define these using undetermined metric functions, explicit spacetimes is not the same thing as a specific spacetime!)
In another BRS thread, I plan to give some hints about using GRTensorII with Maple to do all kinds of powerful stuff. Here I want to explain how to use a free package, Maxima, an open source cousin of Maple which is currently, sad to say, much more primitive than Maple, but which does contain packages which you can use for some simple index gymnastics (itensor) and for componentwise computations for explicit spacetimes (ctensor). Best of all, ctensor supports frame field computations, although there are few trouble spots.
I should caution that the Maple/GRTensorII combo is much more powerful than Maxima/ctensor: GRTensorII offers
Actually, there are at least two aspects in which I prefer Maxima to Maple:
Before I forget, let me say that I would be happy to hear from any programmers amongst you who might be interested in improving the capabilities of ctensor or even Maxima itself, although I have as yet no connection to these open source projects.
Maxima (which comes with itensor and ctensor as standard packages) is available for Windows, Mac, and *nix users. I myself use Debian Linux, and I can't help anyone with installation issues in Windows or Mac, I can probably help with Linux installation, so shoot me a PM if you try to intall it and have problems. If you use Debian Lenny (the current "stable" branch of Debian), you can easily install Maxima using your package manager (which will pull in any further required packages). I recommend also installing wxmaxima, a GUI which seems to work better than the alternative GUI on offer in the Debian repositories, but caution that wxmaxima has suffered from a security hole (which has been patched in the current version of the package). (To be fair, Maple uses Java, which is a kinda scary thought.)
I think the simplest way to get started computing some simple quantities useful for gtr, once you have installed Maxima and wxmaxima, is to use some sample batch files which I will provide. If you run these under wxmaxima in batch mode, Maxima will simply load ctensor and execute some commands in sequence. Then, roughly speaking, simply copying a template and editing it to define the frame you want is all that is required to use Maxima to compute components using the frame you have defined.
- Many gtr-related questions in PF are often best answered using the result of some computation; for example, someone often incorrectly believes that the Einstein tensor of his manifold vanishes),
- Computations "by hand" in gtr are error prone and time consuming,
- SA/Ms typically don't have a lot of free time.
Use a computer!
I think it is fairly well known among SA/Ms that a free package which runs under Maple (which is definitely not free), GRTensorII, is extremely powerful and very well suited for computations with explicit spacetimes. (Since we can define these using undetermined metric functions, explicit spacetimes is not the same thing as a specific spacetime!)
In another BRS thread, I plan to give some hints about using GRTensorII with Maple to do all kinds of powerful stuff. Here I want to explain how to use a free package, Maxima, an open source cousin of Maple which is currently, sad to say, much more primitive than Maple, but which does contain packages which you can use for some simple index gymnastics (itensor) and for componentwise computations for explicit spacetimes (ctensor). Best of all, ctensor supports frame field computations, although there are few trouble spots.
I should caution that the Maple/GRTensorII combo is much more powerful than Maxima/ctensor: GRTensorII offers
- much better input/output, e.g. easy raising and lowering of indices,
- useful derivative operators, e.g. covariant derivative, Lie derivative,
- automatic computation of any other tensorial quantities needed to compute the requested components,
- more flexible spacetime definitions (can use frame or coframe, can use constraint equations),
- the ability to define and compute the components of (almost) arbitrary tensorial objects,
- the ability to repeatedly apply constraint equations (very useful in working with families like the Weyl family of all static axisymmetric vacuum solutions!),
- much better defined quantities, e.g. Ricci spinors in addition to Weyl spinors,
- some sophisticated trickery which improves performance in gtr computations,
- while data passing between GRTensorII and Maple is not always as simple as one might desire, one can easily take advantage of Maple's powerful symbolic DE solvers, symbolic integrators, and the powerful casesplit command.
Actually, there are at least two aspects in which I prefer Maxima to Maple:
- .mpl files are not as convenient to comment as .mac files,
- Maple is not always very good at letting the user declare dependent and independent variables, so symbolic expressions involving partial derivatives in Maple often appear unneccessarily fussy, at times even unreadable, although this can be suppressed in the output, this is not so easy to suppress in the input.)
Before I forget, let me say that I would be happy to hear from any programmers amongst you who might be interested in improving the capabilities of ctensor or even Maxima itself, although I have as yet no connection to these open source projects.
Maxima (which comes with itensor and ctensor as standard packages) is available for Windows, Mac, and *nix users. I myself use Debian Linux, and I can't help anyone with installation issues in Windows or Mac, I can probably help with Linux installation, so shoot me a PM if you try to intall it and have problems. If you use Debian Lenny (the current "stable" branch of Debian), you can easily install Maxima using your package manager (which will pull in any further required packages). I recommend also installing wxmaxima, a GUI which seems to work better than the alternative GUI on offer in the Debian repositories, but caution that wxmaxima has suffered from a security hole (which has been patched in the current version of the package). (To be fair, Maple uses Java, which is a kinda scary thought.)
I think the simplest way to get started computing some simple quantities useful for gtr, once you have installed Maxima and wxmaxima, is to use some sample batch files which I will provide. If you run these under wxmaxima in batch mode, Maxima will simply load ctensor and execute some commands in sequence. Then, roughly speaking, simply copying a template and editing it to define the frame you want is all that is required to use Maxima to compute components using the frame you have defined.
Last edited: