calculate the Killing vectors for a given metric - Maple Programming Help

Home : Support : Online Help : Mathematics : DifferentialGeometry : Tensor : DifferentialGeometry/Tensor/KillingVectors

Tensor[KillingVectors] - calculate the Killing vectors for a given metric

Calling Sequences

KillingVectors(g)

Parameters

g         - a metric tensor on a manifold $M$

options   - any of the following keywords arguments: ansatz, unknowns, auxiliaryequations, coefficientvariables, parameters, output

Description

 • A vector field is called a Killing vector for the metric $g$ if, where denotes Lie differentiation with respect to $X.$ If  and $▿$denotes covariant differentiation with respect to the given metric, then this equation can be written asThe set of all Killing vectors forms a finite dimensional Lie algebra of vector fields.
 • The program KillingVectors generates the defining system of 1st order PDE for a Killing vector and uses pdsolve to find the solutions to these PDE.
 • The keyword argument coefficientvariables  allows the user to specify the coefficient functions in the Killing vector $X$as functions of the variables .
 • The exact form of the Killing vector $X$can be specified with the keyword argument ansatz  . For example, if the coordinates on the underlying manifold are and are defined vectors, then one may solve for Killing vectors of the form . In this situation the unknown functions must be explicitly specified with the keyword argument unknowns, for example, unknowns
 • When using the keyword argument ansatz, additional algebraic or differential conditions may be imposed upon the unknowns using the keyword argument auxiliaryequations Here is a list of the auxiliary equations to be added to the Killing equations.
 • If the metric depends upon a number of unspecified parameters (either constants or functions), then the keyword argument parameterswhere is the list of parameters, will invoke case-splitting with respect to these parameters. Special values of the parameters, where either the number or the explicit form of the Killing vectors changes, are calculated. The keyword argument auxiliaryequations can be used to specify additional algebraic or differential conditions on the parameters.
 • With keyword argument output = the defining partial differential equations for the Killing vectors are returned. The option output = returns the general Killing vector in terms of a number of arbitrary constants ${\mathrm{_C}}_{1}$, ... . The option output = returns a list of vectors which form a basis for the solution space. The default value of this keyword argument is output = $"list".$
 • This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form KillingVectors(...) only after executing the commands with(DifferentialGeometry), with(Tensor), in that order. It can always be used in the long form DifferentialGeometry:-Tensor:-KillingVectors(...)

Examples

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

Example 1.

We find the Killing vectors for the metric ${g}_{1}$ for the Poincare half-plane.

 > $\mathrm{DGsetup}\left(\left[x,y\right],P\right):$
 P > $\mathrm{g1}≔\mathrm{evalDG}\left(\frac{1}{{y}^{2}}\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}\right)\right)$
 ${\mathrm{g1}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{P}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}\frac{{1}}{{{y}}^{{2}}}\right]{,}\left[\left[{2}{,}{2}\right]{,}\frac{{1}}{{{y}}^{{2}}}\right]\right]\right]\right)$ (2.1)
 P > $\mathrm{K1}≔\mathrm{KillingVectors}\left(\mathrm{g1}\right)$
 ${\mathrm{K1}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}\frac{{{x}}^{{2}}}{{2}}{-}\frac{{{y}}^{{2}}}{{2}}\right]{,}\left[\left[{2}\right]{,}{y}{}{x}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{x}\right]{,}\left[\left[{2}\right]{,}{y}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.2)

We check the result using the LieDerivative command.

 P > $\mathrm{map}\left(\mathrm{LieDerivative},\mathrm{K1},\mathrm{g1}\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{P}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{0}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{P}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{0}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{P}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{0}\right]\right]\right]\right)\right]$ (2.3)

Alternatively, we can use the keyword argument output = to calculate the general Killing vector in terms of 3 arbitrary constants.

 P > $\mathrm{KillingVectors}\left(\mathrm{g1},\mathrm{output}="general"\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}\frac{{1}}{{2}}{}{{x}}^{{2}}{}{\mathrm{_C1}}{+}{\mathrm{_C2}}{}{x}{-}\frac{{1}}{{2}}{}{\mathrm{_C1}}{}{{y}}^{{2}}{+}{\mathrm{_C3}}\right]{,}\left[\left[{2}\right]{,}{y}{}\left({\mathrm{_C1}}{}{x}{+}{\mathrm{_C2}}\right)\right]\right]\right]\right)$ (2.4)

We calculate the structure equations for this Lie algebra of Killing vectors using the LieAlgebraData command, initialize the resulting Lie algebra, and check that it is semi-simple with the LieAlgebra Query command.

 P > $L≔\mathrm{LieAlgebraData}\left(\mathrm{K1},\mathrm{Sym}\right)$
 ${L}{:=}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{-}{\mathrm{e1}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{-}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{-}{\mathrm{e3}}\right]$ (2.5)
 P > $\mathrm{DGsetup}\left(L\right)$
 ${\mathrm{Lie algebra: Sym}}$ (2.6)
 Sym > $\mathrm{Query}\left("Semisimple"\right)$
 ${\mathrm{true}}$ (2.7)

Example 2.

In this example we consider a metric which depends upon 2 parameters and $b$. We find the Killing vectors of for different values of these parameters.

 P > $\mathrm{DGsetup}\left(\left[x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.8)
 M > $\mathrm{g2}≔\mathrm{evalDG}\left(\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}+\left(ax+bz+1\right)\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}+\frac{1}{ax+by+1}\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${\mathrm{g2}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{a}{}{x}{+}{b}{}{z}{+}{1}\right]{,}\left[\left[{3}{,}{3}\right]{,}\frac{{1}}{{a}{}{x}{+}{b}{}{y}{+}{1}}\right]\right]\right]\right)$ (2.9)

To invoke case-splitting, we use the keyword argument parameters. With this calling sequence KillingVectors will return a sequence of Killing vectors and, as the last element in the sequence, the special parameter values used to calculate these Killing vectors.

 M > $\mathrm{K2}≔\mathrm{KillingVectors}\left(\mathrm{g2},\mathrm{parameters}=\left[a,b\right]\right)$
 ${\mathrm{K2}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{z}\right]{,}\left[\left[{3}\right]{,}{x}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{-}{z}\right]{,}\left[\left[{3}\right]{,}{y}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{y}\right]{,}\left[\left[{2}\right]{,}{x}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}\frac{{b}}{{a}}\right]{,}\left[\left[{2}\right]{,}{1}\right]{,}\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[\left\{{a}{=}{0}{,}{b}{=}{0}\right\}{,}\left\{{a}{=}{0}{,}{b}{=}{b}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{0}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{b}\right\}\right]$ (2.10)

Four cases are found:

 M > $\mathrm{Cases}≔\mathrm{K2}\left[-1\right]$
 ${\mathrm{Cases}}{:=}\left[\left\{{a}{=}{0}{,}{b}{=}{0}\right\}{,}\left\{{a}{=}{0}{,}{b}{=}{b}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{0}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{b}\right\}\right]$ (2.11)
 M > $\mathrm{nops}\left(\mathrm{Cases}\right)$
 ${4}$ (2.12)

Case 1. 6 Killing vectors

 M > $\mathrm{K2}\left[1\right]$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{z}\right]{,}\left[\left[{3}\right]{,}{x}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{-}{z}\right]{,}\left[\left[{3}\right]{,}{y}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{y}\right]{,}\left[\left[{2}\right]{,}{x}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.13)

Case 2. { 1 Killing vector

 M > $\mathrm{K2}\left[2\right]$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.14)

Case 3. 2 Killing vectors

 M > $\mathrm{K2}\left[3\right]$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.15)

Case 4. $\left\{a=a,b=b\right\}$ 1 Killing vector

 M > $\mathrm{K2}\left[4\right]$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}\frac{{b}}{{a}}\right]{,}\left[\left[{2}\right]{,}{1}\right]{,}\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.16)

The case $\left\{a=0,b=0\right\}$ defines the flat Euclidean metric. We can exclude this case by using the keyword argument auxiliaryequations.

 M > $\mathrm{KillingVectors}\left(\mathrm{g2},\mathrm{parameters}=\left[a,b\right],\mathrm{auxiliaryequations}=\left[{a}^{2}+{b}^{2}\ne 0\right]\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}\frac{{b}}{{a}}\right]{,}\left[\left[{2}\right]{,}{1}\right]{,}\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[\left\{{a}{=}{0}{,}{b}{=}{b}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{0}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{b}\right\}\right]$ (2.17)

Example 3.

In this example we consider a metric which depends upon an arbitrary function. We find the Killing vectors of for different values of this function.

 P > $\mathrm{DGsetup}\left(\left[x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.18)
 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}+\left(f\left(x\right)+{y}^{2}\right)\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{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{f}{}\left({x}\right){+}{{y}}^{{2}}\right]\right]\right]\right)$ (2.19)

We exclude the case f(x) = 0.

 M > $K≔\mathrm{KillingVectors}\left(\mathrm{g3},\mathrm{parameters}=\left\{f\left(x\right)\right\},\mathrm{auxiliaryequations}=\left\{f\left(x\right)\ne 0\right\}\right)$
 ${K}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{y}{}{z}\right]{,}\left[\left[{2}\right]{,}{-}\left({\mathrm{_C1}}{-}{x}\right){}{z}\right]{,}\left[\left[{3}\right]{,}{\mathrm{arctan}}{}\left(\frac{{y}}{{\mathrm{_C1}}{-}{x}}\right)\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{y}\right]{,}\left[\left[{2}\right]{,}{\mathrm{_C1}}{-}{x}\right]\right]\right]\right)\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-}{2}{}{y}\right]{,}\left[\left[{2}\right]{,}{\mathrm{_C1}}{+}{2}{}{x}\right]\right]\right]\right)\right]{,}\left[\left\{{f}{}\left({x}\right){=}{\mathrm{_C1}}\right\}{,}\left\{{f}{}\left({x}\right){=}{f}{}\left({x}\right)\right\}{,}\left\{{f}{}\left({x}\right){=}{{\mathrm{_C1}}}^{{2}}{-}{2}{}{\mathrm{_C1}}{}{x}{+}{{x}}^{{2}}\right\}{,}\left\{{f}{}\left({x}\right){=}{\mathrm{_C1}}{}{x}{+}{{x}}^{{2}}{+}{\mathrm{_C2}}\right\}\right]$ (2.20)

In the generic case where f(x) is arbitrary there is just 1 Killing vector. When f(x) is a constant there are 2 Killing vectors. If f(x) is a generic quadratic function there are 2 Killing vectors while if f(x) is a perfect square there are 3 Killing vectors. Let's check this last case by direct calculation.

 M > $\mathrm{g3a}≔\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}+\left({x}^{2}+{y}^{2}\right)\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${\mathrm{g3a}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{2}}{+}{{y}}^{{2}}\right]\right]\right]\right)$ (2.21)
 M > $\mathrm{KillingVectors}\left(\mathrm{g3a}\right)$
 $\left[{y}{}{z}{}{\mathrm{D_x}}{-}{z}{}{x}{}{\mathrm{D_y}}{+}{\mathrm{arctan}}{}\left(\frac{{y}}{{x}}\right){}{\mathrm{D_z}}{,}{\mathrm{D_z}}{,}{-}{y}{}{\mathrm{D_x}}{+}{x}{}{\mathrm{D_y}}\right]$ (2.22)

Example 4.

We use an orthonormal frame to find the Killing vectors for the Godel metric. First we set up a 4-dimensional spacetime M with coordinates . Then we define a coframe, calculate the structure equations for this coframe, and initialize the result as a frame called "Godel".

 Sym > $\mathrm{DGsetup}\left(\left[x,y,z,t\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.23)
 M > $\mathrm{\Omega }≔\mathrm{evalDG}\left(\left[\mathrm{dx},\mathrm{dy},\frac{1}{\mathrm{sqrt}\left(2\right)}\mathrm{exp}\left(x\right)\mathrm{dz},\mathrm{dt}+\mathrm{exp}\left(x\right)\mathrm{dz}\right]\right)$
 ${\mathrm{Ω}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}\frac{\sqrt{{2}}{}{{ⅇ}}^{{x}}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{{ⅇ}}^{{x}}\right]{,}\left[\left[{4}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.24)
 M > $\mathrm{FD}≔\mathrm{FrameData}\left(\mathrm{\Omega },"Godel"\right)$
 ${\mathrm{FD}}{:=}\left[{d}{}{\mathrm{Θ1}}{=}{0}{,}{d}{}{\mathrm{Θ2}}{=}{0}{,}{d}{}{\mathrm{Θ3}}{=}{\mathrm{Θ1}}{}{\bigwedge }{}{\mathrm{Θ3}}{,}{d}{}{\mathrm{Θ4}}{=}\sqrt{{2}}{}{\mathrm{Θ1}}{}{\bigwedge }{}{\mathrm{Θ3}}\right]$ (2.25)
 M > $\mathrm{DGsetup}\left(\mathrm{FD},\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}{,}{t}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{"Godel"}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{"Godel"}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{"Godel"}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{"Godel"}{,}{1}\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: Godel}}$ (2.26)

Here is the Godel metric, first in the orthonormal frame and then in the coordinate frame (see Exact Solutions, page 178).

 Godel > $\mathrm{g4}≔\mathrm{evalDG}\left(\mathrm{Θ1}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{Θ1}+\mathrm{Θ2}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{Θ2}+\mathrm{Θ3}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{Θ3}-\mathrm{Θ4}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{Θ4}\right)$
 ${\mathrm{g4}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{"Godel"}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{1}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]\right]\right]\right)$ (2.27)
 Godel > $\mathrm{\Phi }≔\mathrm{Transformation}\left(M,"Godel",\left[x=x,y=y,z=z,t=t\right]\right)$
 ${\mathrm{Φ}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"transformation"}{,}\left[\left[{M}{,}{0}\right]{,}\left[{"Godel"}{,}{0}\right]\right]{,}\left[\right]{,}\left[\left[\begin{array}{cccc}{1}& {0}& {0}& {0}\\ {0}& {1}& {0}& {0}\\ {0}& {0}& \frac{\sqrt{{2}}}{{2}{}{{ⅇ}}^{{-}{x}}}& {0}\\ {0}& {0}& \frac{{1}}{{{ⅇ}}^{{-}{x}}}& {1}\end{array}\right]\right]\right]{,}\left[\left[{x}{,}{x}\right]{,}\left[{y}{,}{y}\right]{,}\left[{z}{,}{z}\right]{,}\left[{t}{,}{t}\right]\right]\right]\right)$ (2.28)
 M > $\mathrm{PushPullTensor}\left(\mathrm{\Phi },\mathrm{g4}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{-}\frac{{{ⅇ}}^{{2}{}{x}}}{{2}}\right]{,}\left[\left[{3}{,}{4}\right]{,}{-}{{ⅇ}}^{{x}}\right]{,}\left[\left[{4}{,}{3}\right]{,}{-}{{ⅇ}}^{{x}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]\right]\right]\right)$ (2.29)

Here are the 5 Killing vectors for the Godel metric in the adapted frame.

 M > $\mathrm{K4}≔\mathrm{KillingVectors}\left(\mathrm{g4}\right)$
 ${\mathrm{K4}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{z}\right]{,}\left[\left[{3}\right]{,}{-}\frac{\left({{ⅇ}}^{{x}}{}{{z}}^{{2}}{-}{2}{}{{ⅇ}}^{{-}{x}}\right){}\sqrt{{2}}}{{4}}\right]{,}\left[\left[{4}\right]{,}{-}\frac{{{ⅇ}}^{{x}}{}{{z}}^{{2}}}{{2}}{-}{{ⅇ}}^{{-}{x}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]{,}\left[\left[{3}\right]{,}{-}\frac{{{ⅇ}}^{{x}}{}{z}{}\sqrt{{2}}}{{2}}\right]{,}\left[\left[{4}\right]{,}{-}{{ⅇ}}^{{x}}{}{z}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{-}\frac{\sqrt{{2}}{}{{ⅇ}}^{{x}}}{{2}}\right]{,}\left[\left[{4}\right]{,}{-}{{ⅇ}}^{{x}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{-1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"Godel"}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.30)

Here are the structure equations for the Lie algebra of Killing vectors.

 Godel > $\mathrm{L2}≔\mathrm{LieAlgebraData}\left(\mathrm{K4},\mathrm{Sym}\right)$
 ${\mathrm{L2}}{:=}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{\mathrm{e1}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e3}}\right]$ (2.31)
 Godel > $\mathrm{DGsetup}\left(\mathrm{L2}\right)$
 ${\mathrm{Lie algebra: Sym}}$ (2.32)

We can use the LieAlgebras package to decompose this Lie algebra. The command Decompose returns a basis in which the algebra is decomposed into a direct sum of subalgebras.

 Sym > $\mathrm{DA}≔\mathrm{Decompose}\left(\mathrm{factoralgebras}=\mathrm{true}\right)$
 ${\mathrm{DA}}{:=}\left[\left[\begin{array}{rrrrr}{1}& {0}& {0}& {0}& {0}\\ {0}& {1}& {0}& {0}& {0}\\ {0}& {0}& {1}& {0}& {0}\\ {0}& {0}& {0}& {1}& {0}\\ {0}& {0}& {0}& {0}& {1}\end{array}\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Sym}}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Sym}}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Sym}}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Sym}}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Sym}}{,}\left[\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right)\right]{,}\left[\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{\mathrm{e1}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e3}}\right]{,}\left[{}\right]\right]\right]$ (2.33)
 Sym > $\mathrm{L3}≔\mathrm{LieAlgebraData}\left(\mathrm{DA}\left[2\right]\right)$
 ${\mathrm{L3}}{:=}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{\mathrm{e1}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e3}}\right]$ (2.34)
 Sym > $\mathrm{DGsetup}\left(\mathrm{L3},\left[f\right],\left[\mathrm{\alpha }\right]\right)$
 ${\mathrm{Lie algebra: L1}}$ (2.35)
 L1 > $\mathrm{MultiplicationTable}\left("LieTable"\right)$
 $\left[\begin{array}{ccccccc}{}& {|}& {\mathrm{f1}}& {\mathrm{f2}}& {\mathrm{f3}}& {\mathrm{f4}}& {\mathrm{f5}}\\ {}& {\mathrm{----}}& {\mathrm{----}}& {\mathrm{----}}& {\mathrm{----}}& {\mathrm{----}}& {\mathrm{----}}\\ {\mathrm{f1}}& {|}& {0}& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)& {0}& {0}\\ {\mathrm{f2}}& {|}& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{-1}\right]\right]\right]\right)& {0}& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)& {0}& {0}\\ {\mathrm{f3}}& {|}& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{-1}\right]\right]\right]\right)& {\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{"L1"}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{-1}\right]\right]\right]\right)& {0}& {0}& {0}\\ {\mathrm{f4}}& {|}& {0}& {0}& {0}& {0}& {0}\\ {\mathrm{f5}}& {|}& {0}& {0}& {0}& {0}& {0}\end{array}\right]$ (2.36)