Monday, August 15, 2016

Maxima ctensor overview

I have installed Maxima (finally) and I have been playing with it a little. First part of the post is about a general explanation about what Maxima's ctensor can and can't do. Second and third part will try to explain functionality with a couple of easy examples. I have not tried neither itensor nor atensor; as I stated in the past post, their functionality is not what I need for now.
So far, and summarizing, I must admit Maxima falls short for my intentions. Truth is it's a good tool anyway and it should be easy to adapt to what I want when I had the time to go for it.


Overview

Maxima's ctensor serves one purpose: you put the metric tensor in a variable called lg, and you are able to obtain from Christoffel symbols to Ricci tensors. There are several ways to do so, by the way. So, from metrics you can obtain curvature terms. Bad thing: not stress-energy tensors are available immediately -that would be too good. Sorry. Good thing: you can put any metric you want to. You can even choose between 26 different and famous metrics. Bad news again: ctensor will not accept a general expression (one without the coordinate system variables in it) in the metric definition. Good thing again: it turns out there are like a lot of different tensors to define curvature. I should investigate further in this, because I just knew about two methods of defining curvature, and now it turns out there are like a lot.

Summarizing a lot: Maxima and ctensor are good for some things and not good for others. Let's see what can they do, shall we?

From metric to Ricci tensor

The easiest thing to do is follow csetup() instruction: it displays some sort of wizard which allows you to define the metric tensor easily. For best results, I recommend a normal terminal window. Truth is whenever I try to use wxMaxima (the user friendly GUI for Maxima), it just freezes or crashes on mobile or laptop. I think it's due to some kind of issue with LISP. Anyway, you type csetup(); and you are able to obtain easily the metric tensor answering a couple of questions the program prompts.
                   

All fashioned terminal window for differential geometry. What can be cooler than that?

BTW, I'm following this tutorial step by step so maybe you'll find easier to grasp all of this from there. What's next? Oh yeah. Christoffel symbols. For the win. christof(mcs);


Last time I did this by hand it took me like a remarkable amount of time.

Anyway, how can you obtain the Ricci tensor? Piece of cake! You just type ricci(true);. The "true" parameter orders Maxima to show null components. Which is the case, I guess, with Schwarzschild metric.

Ricci tensor components.

So, from here, we can do a lot of things. My first intention was to get the stress-energy tensor, but as you may remember in Schwarzschild is kind of null. It is possible, anyway if you ask Maxima for the Ricci Scalar and add together the Einstein Field equations.

From Ricci tensor to metric

This is a little harder. The thing is ctensor uses the metric tensor (you start from the metric and then you just go on with it) for every calculation. It's remarkable, but it doesn't solve the reverse problem, that is, from Ricci or maybe from the stress-energy tensor being able to find out anything else. If you recall properly the post about the Schwarzschild metric obtention, you have to solve a couple of differential equations and you have to add an unfair amount of simplifications in order to crack the metric out.
Of course, Maxima has tools to work out differential equations (not necesarily in a numerical way), but putting all together with ctensor is not going to work right away. I just have to work it out a little more, specially with all the other instructions (there are like twenty) that Maxima uses. That amount makes me realize I don't know sh*t about GR yet. Not complaining. Truth is it is surprising I got so far with so little knowledge.

What should I do from here?

Well. My first idea was to find out the energy-stress tensor from a known metric, but I should dig a little bit depper to do it properly. Before that, I want to have an eye on Cadabra -which it's probably going to be more similar to itensor and atensor.

Next posts should deal with Petrov classification, several concepts related to Ricci flow and maybe something about the nucleus of the Earth, which will allow me to go a little bit deeper into Schwarzschild's solution for a non null energy-stress tensor.

With respect to Maxima, there are good resources for more information over there. so fell free to use google-fu. 



No comments:

Post a Comment