GRQuery - Maple Help

Tensor[GRQuery] - check various geometric properties of fields on a spacetime

Calling Sequences

GRQuery(arg1, arg2, ..., keyword)

Parameters

arg1    - (optional) other arguments

keyword - keyword string

Description

 • The GRQuery command can be used to check various properties of metrics and other tensor and spinor fields defined on a spacetime manifold. Admissible keyword strings are "NullTetrad", "OrthonormalFrame", "OrthonormalCoframe", "OrthonormalTetrad", "PrincipalNullDirection" "RecurrentTensor".
 • This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form GRQuery(...) only after executing the commands with(DifferentialGeometry); with(Tensor); in that order. It can always be used in the long form DifferentialGeometry:-Tensor:-GRQuery.

Examples

 > $\mathrm{with}\left(\mathrm{DifferentialGeometry}\right):$$\mathrm{with}\left(\mathrm{Tensor}\right):$

Example 1.

Let $g$ be a metric on a 4-dimensional manifold with signature $\left(1,-1,-1,-1\right)$. A list of 4 vectors $\left[{E}_{1},{E}_{2},{E}_{3},{E}_{4}\right]$ defines an orthonormal tetrad if

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 $\left(t,x,y,z\right)$.

 M > $\mathrm{DGsetup}\left(\left[t,x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.1)

Define a spacetime metric $g$ on $M$.

 M > $g≔\mathrm{evalDG}\left(\mathrm{dt}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dt}-\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}-\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}-\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${g}{:=}{\mathrm{dt}}{}{\mathrm{dt}}{-}{\mathrm{dx}}{}{\mathrm{dx}}{-}{\mathrm{dy}}{}{\mathrm{dy}}{-}{\mathrm{dz}}{}{\mathrm{dz}}$ (2.2)

Define a tetrad $\mathrm{F1}$ on $M$. Verify that $\mathrm{F1}$ is an orthonormal tetrad with respect to the metric $g$.

 M > $\mathrm{F1}≔\left[\mathrm{D_t},\mathrm{D_x},\mathrm{D_y},\mathrm{D_z}\right]$
 ${\mathrm{F1}}{:=}\left[{\mathrm{D_t}}{,}{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$ (2.3)
 M > $\mathrm{GRQuery}\left(\mathrm{F1},g,"OrthonormalTetrad"\right)$
 ${\mathrm{true}}$ (2.4)

Note that the same vectors, listed in a different order, do not necessarily define an orthonormal tetrad.

 M > $\mathrm{F2}≔\left[\mathrm{D_x},\mathrm{D_y},\mathrm{D_z},\mathrm{D_t}\right]$
 ${\mathrm{F2}}{:=}\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}{,}{\mathrm{D_t}}\right]$ (2.5)

 M > $\mathrm{GRQuery}\left(\mathrm{F2},g,"OrthonormalTetrad"\right)$
 ${\mathrm{false}}$ (2.6)

Example 2.

A list of 4 vectors  defines a (complex) null tetrad if $\stackrel{‾}{M}$ is the complex conjugate of $M$,

$g\left(L,N\right)=1$,  ,

and all other inner products vanish. In particular, the vectors  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≔\mathrm{evalDG}\left(\left[\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_t}+\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_z},\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_t}-\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_z},\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_x}+\frac{1}{2}I{2}^{\frac{1}{2}}\mathrm{D_y},\frac{1}{2}{2}^{\frac{1}{2}}\mathrm{D_x}-\frac{1}{2}I{2}^{\frac{1}{2}}\mathrm{D_y}\right]\right)$
 ${N}{:=}\left[\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_t}}{+}\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_z}}{,}\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_t}}{-}\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_z}}{,}\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_x}}{+}\frac{{I}}{{2}}{}\sqrt{{2}}{}{\mathrm{D_y}}{,}\frac{\sqrt{{2}}}{{2}}{}{\mathrm{D_x}}{-}\frac{{I}}{{2}}{}\sqrt{{2}}{}{\mathrm{D_y}}\right]$ (2.7)
 M > $\mathrm{GRQuery}\left(N,g,"NullTetrad"\right)$
 ${\mathrm{true}}$ (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 $\left(x,y,z\right)$.

 M > $\mathrm{DGsetup}\left(\left[x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.9)

Define a Riemannian metric $g$ on $M$.

 M > $\mathrm{g3}≔\mathrm{evalDG}\left(\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}+\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}+\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${\mathrm{g3}}{:=}{\mathrm{dx}}{}{\mathrm{dx}}{+}{\mathrm{dy}}{}{\mathrm{dy}}{+}{\mathrm{dz}}{}{\mathrm{dz}}$ (2.10)

Define a frame $\mathrm{F3}$ on $M$ with respect to the metric $g$. Verify that $\mathrm{F3}$ is an orthonormal frame.

 M > $\mathrm{F3}≔\left[\mathrm{D_x},\mathrm{D_y},\mathrm{D_z}\right]$
 ${\mathrm{F3}}{:=}\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$ (2.11)
 > $\mathrm{GRQuery}\left(\mathrm{F3},\mathrm{g3},"OrthonormalFrame"\right)$
 ${\mathrm{true}}$ (2.12)

Define a co-frame $\mathrm{Ω3}$ with respect to the metric $g$. Verify that $\mathrm{Ω3}$ is an orthonormal co-frame.

 M > $\mathrm{Ω3}≔\left[\mathrm{dx},\mathrm{dy},\mathrm{dz}\right]$
 ${\mathrm{Ω3}}{:=}\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$ (2.13)
 > $\mathrm{GRQuery}\left(\mathrm{Ω3},\mathrm{g3},"OrthonormalCoframe"\right)$
 ${\mathrm{true}}$ (2.14)

One can use an optional 3rd argument, a square matrix $A$, to specify the orthogonality relations to be verified - if , then GRQuery(F, g, A, "OrthonormalFrame") returns true if . For example:

 M > $\mathrm{g3}≔\mathrm{evalDG}\left(2\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&s\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}+\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${\mathrm{g3}}{:=}{\mathrm{dx}}{}{\mathrm{dy}}{+}{\mathrm{dy}}{}{\mathrm{dx}}{+}{\mathrm{dz}}{}{\mathrm{dz}}$ (2.15)
 M > $\mathrm{F3}≔\left[\mathrm{D_x},\mathrm{D_y},\mathrm{D_z}\right]$
 ${\mathrm{F3}}{:=}\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$ (2.16)
 M > $A≔\mathrm{Matrix}\left(\left[\left[0,1,0\right],\left[1,0,0\right],\left[0,0,1\right]\right]\right)$
 M > $\mathrm{GRQuery}\left(\mathrm{F3},\mathrm{g3},A,"OrthonormalFrame"\right)$
 ${\mathrm{true}}$ (2.17)

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 > $\mathrm{DGsetup}\left(\left[t,x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.18)
 M > $\mathrm{g4}≔\mathrm{DifferentialGeometry}:-\mathrm{evalDG}\left(\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}+\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}+\frac{1}{2}\mathrm{exp}\left(2x\right)\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}-\left(\mathrm{dt}+\mathrm{exp}\left(x\right)\mathrm{dz}\right)\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&s\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left(\mathrm{dt}+\mathrm{exp}\left(x\right)\mathrm{dz}\right)\right)$
 ${\mathrm{g4}}{:=}{-}{\mathrm{dt}}{}{\mathrm{dt}}{-}{{ⅇ}}^{{x}}{}{\mathrm{dt}}{}{\mathrm{dz}}{+}{\mathrm{dx}}{}{\mathrm{dx}}{+}{\mathrm{dy}}{}{\mathrm{dy}}{-}{{ⅇ}}^{{x}}{}{\mathrm{dz}}{}{\mathrm{dt}}{-}\frac{{1}}{{2}}{}{{ⅇ}}^{{2}{}{x}}{}{\mathrm{dz}}{}{\mathrm{dz}}$ (2.19)
 M > $\mathrm{W4}≔\mathrm{WeylTensor}\left(\mathrm{g4}\right):$

The metric g4 is of Petrov type D and therefore admits two independent principal null directions.

 M > $\mathrm{PND1}≔\mathrm{evalDG}\left(\mathrm{D_t}-\mathrm{D_y}\right)$
 ${\mathrm{PND1}}{:=}{\mathrm{D_t}}{-}{\mathrm{D_y}}$ (2.20)
 M > $\mathrm{GRQuery}\left(\mathrm{PND1},\mathrm{g4},\mathrm{W4},"PrincipalNullDirection"\right)$
 ${\mathrm{true}}$ (2.21)
 M > $\mathrm{PND2}≔\mathrm{evalDG}\left(\mathrm{D_t}+\mathrm{D_y}\right)$
 ${\mathrm{PND2}}{:=}{\mathrm{D_t}}{+}{\mathrm{D_y}}$ (2.22)
 M > $\mathrm{GRQuery}\left(\mathrm{PND1},\mathrm{g4},\mathrm{W4},"PrincipalNullDirection"\right)$
 ${\mathrm{true}}$ (2.23)

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 > $\mathrm{DGsetup}\left(\left[t,x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.24)
 M > $\mathrm{g5}≔\mathrm{evalDG}\left({t}^{2}\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}-{x}^{2}\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}+\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}+\mathrm{dt}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&s\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}\right)$
 ${\mathrm{g5}}{:=}\frac{{1}}{{2}}{}{\mathrm{dt}}{}{\mathrm{dx}}{+}\frac{{1}}{{2}}{}{\mathrm{dx}}{}{\mathrm{dt}}{+}{{t}}^{{2}}{}{\mathrm{dx}}{}{\mathrm{dx}}{-}{{x}}^{{2}}{}{\mathrm{dy}}{}{\mathrm{dy}}{+}{\mathrm{dz}}{}{\mathrm{dz}}$ (2.25)
 M > $T≔\mathrm{evalDG}\left(\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}-\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}+\frac{\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}}{x}\right)$
 ${T}{:=}{\mathrm{dx}}{}{\mathrm{dy}}{+}\frac{{\mathrm{dx}}{}{\mathrm{dz}}}{{x}}{-}{\mathrm{dy}}{}{\mathrm{dx}}$ (2.26)
 M > $\mathrm{GRQuery}\left(T,\mathrm{g5},"RecurrentTensor"\right)$
 ${\mathrm{true}}{,}\frac{\left({2}{}{t}{}{x}{-}{1}\right){}{\mathrm{dx}}}{{x}}$ (2.27)