# How to associate a tetrad as a basis of a metric mathematica

It's my first time here, and it's the first time that I try to work with Mathematica, so I am a bit lost! If somebody could help me I'll always be grateful!

I need to define a generale basis for a metric

<< xActShowTime1

DefManifold[M, 4, {a, b, c, d, e, f, g, h, i, j, k}]
DefMetric[-1, gg[-a, -b], CovDer, CurvatureRelations -> True]
DefChart[
ChandraChart, M, {0, 1, 2, 3}, {t[], ϕ[], r[], θ[]},
FormatBasis -> {"Partials", "Differentials"}]
DefScalarFunction[nu]
DefScalarFunction[psi]
DefScalarFunction[mu2]
DefScalarFunction[mu3]
DefScalarFunction[omega]
DefConstantSymbol[mm]
DefConstantSymbol[aa]

MetricTensorArray
FullSimplify[
{{-Exp[2 nu[r[], θ[]]] + Exp[2 psi[r[], θ[]]] omega[r[], θ[]]^2,
-omega[r[], θ[]] Exp[2 psi[r[], θ[]]], 0, 0},
{-omega[r[], θ[]] Exp[2 psi[r[], θ[]]], Exp[2 psi[r[], θ[]]], 0, 0},
{0, 0, Exp[2 mu2[r[], θ[]]], 0},
{0, 0, 0, Exp[2 mu3[r[], θ[]]]}}]

MetricInBasis[gg, -ChandraChart, MetricTensorArray] // MatrixForm
DefBasis[ChCh, TangentM, {0, 1, 2, 3}, BasisColor -> Green]
BasisArray[ChCh][a]


tetrad is the one given by Chandrasekar at page 68, i.e.

tetrad =
{{-Exp[ nu[r[], θ[]]], 0, 0, 0},
{-omega[r[], θ[]] Exp[psi[r[], θ[]]], Exp[psi[r[], θ[]]], 0, 0},
{0, 0, Exp[mu2[r[], θ[]]], 0},
{0, 0, 0, Exp[mu3[r[], θ[]]]}}


With DefBasis and BasisChange and AlllComponents I've been able to introduce the new basis and to write the metric in this basis. Now I'm dealing with computing the Christoffel symbols (which are no more symmetric) in the new metric but I Don't know how to make mathematica to compute them contracting the old Christoffel with the basis elements. I think, as it had developed the correct rules by the previous commands, the program should be able to compute them autonomously, do you know? Thank you

• Welcome to Mathematica.SE! I don't think xActShowTime1 is a standard package; is it just something that loads xCoba, or are there other helper packages involved? Aug 24, 2020 at 19:47
• thank you! Yes exactly, actually I'm using the package xCoba, this is the only one involved for the moment Aug 25, 2020 at 16:16

I haven't done a lot with different bases in xAct, but I think this might be what you're looking for:

AllComponentValues[Basis[{-a, -ChCh}, {b, ChandraChart}], tetrad]


This creates a FoldedRule that associates the entries of tetrad with the components of the basis vectors. This FoldedRule can then (I think) be applied to expressions using the ToValues function though you'll need to specify the tensor components in the coordinate basis first, I think.

Most of this is described in Chapter 7 of the xCoba documentation. Note, however, that the introduction to that chapter states

This section describes how to store and use these values, but not how to compute them. The latter is the object of Section 9 (not yet fully implemented).

So it's possible, depending on your end goal, that xCoba may not yet have the capabilities to do what you want it to do.

• Hi, Thank you for the information. I had a look at the documentation. Actually, with DefBasis and BasisChange and AlllComponents I've been able to introduce the new basis and to write the metric in this basis. Now I'm dealing with computing the Christoffel symbols (which are no more symmetric) in the new metric but I Don't know how to make mathematica to compute them contracting the old Christoffel with the basis elements. I think, as it had developed the correct rules by the previous commands, the program should be able to compute them autonomously, do you know? Thank you Sep 1, 2020 at 5:45