how to calculate Ricci tensor from a metric tensor?

"Ondrej Certik" <[email protected]>
Newsgroups gmane.comp.mathematics.axiom.user
Message-ID <[email protected]>
Hi,

I am new to Axiom, I am studying theoretical physics (4th grade) in
Prague and I want to use the computer algebra system as a physicist
and I understand that mathematicians are looking at the mathematics
from a completely different angle than physicists. But anyway, I want
this:

I have a diagonal matrix:

gdd=Matrix((
    (-exp(nu(r)),0,0,0),
    (0, exp(lam(r)), 0, 0),
    (0, 0, r**2, 0),
    (0, 0, 0, r**2*sin(theta)**2)
    ))

that is a metric tensor on a 4 dimensional manifold with signature
(-,+,+,+), this corresponds to g_\mu_\nu (i.e. the indices are
lowered). No I want to calculate the Christoffel symbols -> riemann
tensor -> ricci tensor.

the x^\mu vector are variables (t, r, theta, phi). The nu(r) and
lam(r) are unknown functions of "r".  I am interested in the
(differential) equations for the unknown functions nu(r) and lam(r)
that I get by setting:

R_\mu_\nu = 0

If you need some more explanation, I'll be glad to explain the details.

In maple I can use the grtensor

http://grtensor.org/

package, but I find the maple not suitable for me, as I want to use
the symbolic manipulation in my programs and I don't want to use the
ugly maple language.

I found all the other symbolic packages unsuitable for me, so I wrote my own:

http://code.google.com/p/sympy/

And in SymPy I can now do it quite easily:

http://sympy.googlecode.com/svn/trunk/examples/relativity.py

SymPy is just a general package and all I am using from it are just
symbolic matrices. (I am lowering and raising indices by myself in the
relativity.py example).

I was curious - how could I do the same in Axiom?

Thanks,
Ondrej

BTW, the resulting equations are:

-1/4*exp(\nu(r))*exp(\lambda(r))**(-1)*\lambda'(r)*\nu'(r)+1/4*exp(\nu(r))*exp(\lambda(r))**(-1)*\nu'(r)**2+1/2*exp(\nu(r))*exp(\lambda(r))**(-1)*(\nu'(r))'+exp(\nu(r))*r**(-1)*exp(\lambda(r))**(-1)*\nu'(r)
= 0
1/4*\nu'(r)*\lambda'(r)-1/2*(\nu'(r))'+r**(-1)*\lambda'(r)-1/4*\nu'(r)**2 = 0
-1/2*r*exp(\lambda(r))**(-1)*\nu'(r)+1/2*r*exp(\lambda(r))**(-1)*\lambda'(r)-sin(\theta)**(-2)*cos(\theta)**2-(-1-sin(\theta)**(-2)*cos(\theta)**2)-exp(\lambda(r))**(-1)
= 0
-sin(\theta)**2*exp(\lambda(r))**(-1)+sin(\theta)**2-1/2*sin(\theta)**2*r*exp(\lambda(r))**(-1)*\nu'(r)+1/2*sin(\theta)**2*r*exp(\lambda(r))**(-1)*\lambda'(r)
= 0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.