Ask Your Question

Revision history [back]

First introduce the coordinate transformation as a new chart Y on M, with some transition map from chart X:

Y.<t,r,ph> = M.chart(r't r:(0,+oo) ph:\phi')
X_to_Y = X.transition_map(Y, (t, sqrt(5*p^2 + 4*t^2), ph))
X_to_Y.set_inverse(t, sqrt(r^2 - 4*t^2)/sqrt(5), ph)
X_to_Y.display()
X_to_Y.inverse().display()

Then simply write

g.display(Y)

to get the expression of the metric $g$ in terms of the coordinates $(t, r, \phi)$. To get the component $g_{00}$ in the associated coordinate frame, write

g[Y.frame(), 0, 0, Y]

Finally, the Christoffel symbols of g with respect to the chart Y = $(t, r, \phi)$ are accessible via

g.christoffel_symbols_display(Y)

Note that only the non-zero and non-redundant components are displayed. To get all non-zero components, including the redundant ones (i.e. those that can be deduced from the symmetry on the last two indices), write

 g.christoffel_symbols_display(Y, only_nonredundant=False)

To get an individual Christoffel symbol, like $\Gamma^r_{\ t r}$, type

g.christoffel_symbols(Y)[[1,0,1]].expr(Y)

More details in the documentation.