> gdn := Idn(a)*ndn(b) + Idn(b)*ndn(a) mdn(a)*conjugate(mdn) (b) -
> mdn(b)*conjugate(mdn) (a);
> gup := subs({1dn=1up, ndn=nup, mdn=mup},gdn);
gdn := Idn(a) ndn(b) + Idn(b) ndn(a) mdn(a) mdn(b) mdn(b) mdn(a)
gup := lup (a) nup (b) + lup (b) nup (a) mup (a) m up (b) mup (b) m up (a)
> tetcon(gdn*gup, {a,b});
Finally, GHPtools provides some functionality for translating expressions into NP
expressions that can subsequently be converted to ordinary coordinate expressions.
This functionality is provide by the aptly named procedure GHP2NP (), which takes as
its input a GHP expression. The functionality provided by the procedure is limited
to expressions involving at most two derivatives. Furthermore, the derivatives must
appear in a specified order according to the following rules: (1) a and 8' must ahr-7i-
appear to the left of P and P', (2) B must appear to the left of a' and (3) P must
appear to the left of P'. Take the following example:
> GHP2NP(th(thp(hln))+eth(ethp(hln)));
DD(a(hln)) + E A(hln) + E A(hln) + 6(6(hln)) + /36(hln) + p316(hln)
In order to aid in the conversion of such quantities into coordinate expressions,
GHPtools contains, as lists of arrays, some commonly used tetrads in the K~err
spacetime. They are: the K~innersley tetrad with indices up tetupK and down tetdnK,
the symmetric tetrad (tetupS, tetdnS) and the symmetric tetrad boosted by a
function B(t, r, 8, 4) and spun by a function S(t, r, 8, 4) (tetupSB, tetdnSB). These
are called simply by invoking their names: