# Calculating determinants and traces

Let's use the Schwarzschild spacetime notebook as an example, using these lines:

{r,t,\phi,\theta}::Coordinate;
{\mu,\nu,\rho,\sigma,\lambda,\kappa,\chi,\gamma}::Indices(values={t,r,\phi,\theta}, position=fixed);
\partial{#}::PartialDerivative;
g_{\mu\nu}::Metric.
g^{\mu\nu}::InverseMetric.
ss:= { g_{t t} = -(1-2 M/r), g_{r r} = 1/(1-2 M/r), g_{\theta\theta} = r**2, g_{\phi\phi}=r**2 sin(\theta)**2 }.
complete(ss, $g^{\mu\nu}$);

So, we have $g_{\mu \nu}$ and $g^{\mu \nu}$ completely determined and we should be able to explicitly calculate its determinant and trace. How would one do it properly in Cadabra?

There's a Determinant property now which you can use together with complete to compute determinants, as in https://cadabra.science/manual/Determinant.html .

by (82.1k points)
selected by

How to calculate trace?

In the same way, e.g. in the above example

T::Trace(g_{m n});
complete(rl, $T$);

Note that this traces over lower indices (a trace over mixed indices would produce the dimension '3').