>
|

|
Example 1.
Let g be a metric on a 4-dimensional manifold with signature [1, -1, -1, -1]. A list of 4 vectors [E_t, E_x, E_y, E_z] defines an orthonormal tetrad if
g(E_t, E_t) = 1 and g(E_x, E_x) = g(E_y, E_y) = g(E_z, E_z) = -1
and all other inner products vanish. The command GRQuery, with the keyword "OrthonormalTetrad", can be used to check that a list of 4 vectors defines an orthonormal tetrad.
First create manifold M with coordinates [t, x, y, z].
M >
|
|
| (2.1) |
Define a spacetime metric g on M.
M >
|
|
| (2.2) |
Define a tetrad F1 on M. Verify that F1 is an orthonormal tetrad with respect to the metric g.
M >
|
|
| (2.3) |
M >
|
|
| (2.4) |
Note that the same vectors, listed in a different order, do not necessarily define an orthonormal tetrad.
M >
|
|
| (2.5) |
M >
|
|
| (2.6) |
Example 2.
A list of 4 vectors [L, N, M, barM] defines a (complex) null tetrad if barM is the complex conjugate of M,
g(L, N) = 1 and g(M, barM) = -1,
and all other inner products vanish. In particular, the vectors [L, N, M, barM] are all null vectors. The command GRQuery, with the keyword "NullTetrad", can be used to check that a list of 4 vectors defines a null tetrad.
M >
|
![N := evalDG([(1/2)*2^(1/2)*D_t+(1/2)*2^(1/2)*D_z, (1/2)*2^(1/2)*D_t-(1/2)*2^(1/2)*D_z, (1/2)*2^(1/2)*D_x+I*2^(1/2)*D_y*(1/2), (1/2)*2^(1/2)*D_x-I*2^(1/2)*D_y*(1/2)])](/support/helpjp/helpview.aspx?si=5654/file05872/math181.png)
|
![[_DG([["vector", M, []], [[[1], (1/2)*2^(1/2)], [[4], (1/2)*2^(1/2)]]]), _DG([["vector", M, []], [[[1], (1/2)*2^(1/2)], [[4], -(1/2)*2^(1/2)]]]), _DG([["vector", M, []], [[[2], (1/2)*2^(1/2)], [[3], ((1/2)*I)*2^(1/2)]]]), _DG([["vector", M, []], [[[2], (1/2)*2^(1/2)], [[3], -((1/2)*I)*2^(1/2)]]])]](/support/helpjp/helpview.aspx?si=5654/file05872/math184.png)
| (2.7) |
M >
|
|
| (2.8) |
Example 3.
To check that a given frame or co-frame is orthonormal in other dimensions or with different metric signatures, the keywords "OrthonormalFrame", "OrthonormalCoframe" are used.
First create a 3-manifold M with coordinates [x, y, z].
M >
|
|
| (2.9) |
Define a Riemannian metric g on M.
M >
|
|
| (2.10) |
Define a frame F1 on M with respect to the metric g. Verify that F is an orthonormal frame.
M >
|
|
| (2.11) |
>
|
|
| (2.12) |
Define a co-frame Omega3 with respect to the metric g. Verify that Omega is an orthonormal co-frame.
M >
|
|
| (2.13) |
>
|
|
| (2.14) |
One can use an optional 3rd argument, a square matrix A, to specify the othogonality relations to be verified --- if Fr = [E_1, E_2, ..., E_n], then GRQuery(Fr, g, A, "OrthonormalFrame") returns true if g(E_i, E)j) = A_ij. For example:
M >
|
|
| (2.15) |
M >
|
|
| (2.16) |
M >
|
|
| (2.17) |
M >
|
|
| (2.18) |
Example 4.
The keyword argument "PrincipalNullDirection" will test to see if a given vector is a principal null direction for a given metric. The Weyl tensor of the metric is a required argument.
M >
|
|
| (2.19) |
M >
|
|
| (2.20) |
M >
|
|
The metric g4 is of Petrov type D and therefore admits two independent principal null directions.
M >
|
|
| (2.21) |
M >
|
|
| (2.22) |
M >
|
|
| (2.23) |
M >
|
|
| (2.24) |
Example 5.
The keyword argument "RecurrentTensor" will test to see if a given tensor is a recurrent tensor with respect to a given metric or connection. If true, then the associated eigen-form is also returned.
M >
|
|
| (2.25) |
M >
|
|
| (2.26) |
M >
|
|
| (2.27) |
M >
|
|
| (2.28) |