Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

Hi,

I was trying to play with cadabra to study Einsteins equations at future null infinity. I have the coordinates $u,r,\phi,\theta$, for which I use lowercase greek indices ($\mu,\nu,...$) and I want to use the coordinate $\phi, \theta$ just to label points on the sphere, which I would like to label with uppercase latin indices (A,B,C,..)

Now I would like to define a metric just on the sphere, so I used in its definition only the indices A,B, hoping that it makes it an object only of those indices. Apparently this is not the case, since if I just evaluate the metric, I still get components written out for the u and r directions and if I try to complete the rule ssid, I get the error that the metric has zero determinant. Is there a way to make \gamma_{A B} an object only of the intrinsic coordinates \phi \theta such that e.g. complete works?

Here my minimal example:

{u,r,\phi,\theta}::Coordinate;

{\mu,\nu,\rho,\sigma}::Indices(higher,values={u,r,\phi,\theta}, position=fixed);
{A,B}::Indices(lower,values={\phi,\theta}, position=fixed,parent=higher);

\gamma_{A B}::Metric(lower, signature = 2);
\gamma^{A B}::InverseMetric(lower, signature = 2);
#\gamma_{A B}::Depends(r,\phi,\theta);

ssid:= {\gamma_{\phi \phi} = r**2*\sin(\theta)**2,   
       \gamma_{\theta \theta} = r**2
       };

ex1 := \gamma_{B A};
evaluate(ex1);
complete(ssid, $\gamma^{A B}$);
in General questions by (190 points)

1 Answer

+2 votes
 
Best answer

I can't reproduce that; are you sure that with a fresh kernel start the above minimal example does the wrong thing? If so, have you tried with the current version (2.5.8 or the upcoming 2.5.10 which is available as 2.5.10-rc1)?

by (83.1k points)
selected by

Yes, it turned out that something was wrong with my installation of cadabra2. I (very painfully) updated to 2.5.8 and now the script runs indeed without problems :) Thanks!

Was that pain caused by something that could have been done differently on the cadabra side? I am trying to make installing/building as easy as possible, but there is always room for improvement.

I think it is mostly me not knowing too much what I am doing and the problem being more my local python setup being even more patchwork than qft in the 40's :)

(Maybe it would be helpful to have a comment somewhere on "how to update/uninstall properly?", since as a person who has limited technical knowledge it was unclear to me what the proper procedure would be)

In general I would advise people to install a binary package if it is available for your system. I build them now for recent versions of Ubuntu, Fedora, openSuSe and Windows, and you can also get a distro-independent AppImage for Linux, or install via homebrew on a mac. Those should work out of the box, and all of those allow for simple uninstallation.

These packages are automatically built on every release.

...