DifferentialGeometry Lessons
Lesson 4: The Lie bracket and the Lie derivative
|
Overview
|
|
In this lesson, you will learn to do the following:
–
|
Calculate the Lie bracket of a pair of vector fields.
|
–
|
Calculate the Lie derivative of a function, a vector field, a differential form, and a tensor.
|
–
|
Check that a collection of vector fields defines an integrable distribution.
|
–
|
Find the integral manifolds for an integrable distribution.
|
–
|
Use the utility DGmap, which has the same function as the Maple map and map2 commands.
|
–
|
Find the Killing equations for a metric tensor.
|
–
|
Write programs which will test various identities satisfied by the Lie bracket and the Lie derivative.
|
|
|
LieBracket
|
|
The Lie bracket of two vector fields is computed using the LieBracket command.
>
|
with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z], "M"):
|
Define 2 vector fields X and Y and compute their Lie bracket.
M >
|
X := evalDG(x*D_x + y*D_y);
|
| (2.1) |
M >
|
Y := evalDG(x*y*D_z);
|
| (2.2) |
| (2.3) |
|
|
LieDerivative
|
|
The DifferentialGeometry command LieDerivative may be applied to Maple expressions, vectors, forms, tensors, and connections.
M >
|
with(DifferentialGeometry):
|
M >
|
DGsetup([x, y, z], "M"):
|
Define a vector field X and calculate the Lie derivative of some DifferentialGeometry objects.
M >
|
X := evalDG(x*D_x + y*D_y);
|
| (3.1) |
[1] Functions
| (3.2) |
| (3.3) |
[2] Vector Fields
M >
|
Y := evalDG(x*y*D_z);
|
| (3.4) |
| (3.5) |
In this case, the LieDerivative agrees with the Lie bracket.
| (3.6) |
[3] Differential Forms
M >
|
alpha := evalDG(z*dy - y*dz);
|
| (3.7) |
M >
|
LieDerivative(X, alpha);
|
| (3.8) |
[4] Tensors
M >
|
T := evalDG(dx &t dx &t dx);
|
| (3.9) |
| (3.10) |
|
|
Application 1 -- Integrable distributions
|
|
A collection of vector fields {X1, X2, ..., Xp} define an integrable distribution if, for all i, j = 1 .. p, the Lie brackets [Xi, Xj] are linear combination of the vectors {X1, X2, ..., Xp}.
Here we check that the given vectors define an integrable distribution. We can do this using either the GetComponents or the Annihilator commands discussed in Lesson 3. In the exercises, you will be asked to write a program to determine if a list of vectors is integrable.
M >
|
with(DifferentialGeometry): DGsetup([x, y, z, u, v], E5);
|
| (4.1) |
E5 >
|
X1 := evalDG(z*u*D_x - 2*x*z*D_z + 2*v*x*D_v);
|
| (4.2) |
E5 >
|
X2 := evalDG(z*D_y - 2*y*D_v);
|
| (4.3) |
E5 >
|
X3 := evalDG(-z*D_z + u*D_u + v*D_v);
|
| (4.4) |
Show that the vectors fields {X1, X2, X3} define a 3 dimensional integrable distribution. First we use the DGbasis command to check that the 3 vectors X1, X2, X3 are independent.
E5 >
|
Y := DGbasis([X1, X2, X3]);
|
| (4.5) |
| (4.6) |
Next, we compute all possible brackets and check that they are in the span of the vectors {X1, X2, X3}.
E5 >
|
X12 := LieBracket(X1, X2):
|
E5 >
|
X13 := LieBracket(X1, X3):
|
E5 >
|
X23 := LieBracket(X2, X3):
|
E5 >
|
GetComponents(X12, [X1, X2, X3]);
|
| (4.7) |
E5 >
|
GetComponents(X13, [X1, X2, X3]);
|
| (4.8) |
E5 >
|
GetComponents(X23, [X1, X2, X3]);
|
| (4.9) |
We remark that that these calculations can be done with just a single call to GetComponents.
E5 >
|
GetComponents([X12, X13, X23], [X1, X2, X3]);
|
| (4.10) |
Since each bracket is a linear combination of the vectors {X1, X2, X3}, these calculations prove that the {X1, X2, X3} is an integrable distribution. Here is an alternative method. First, calculate the annihilator C for the vectors {X1, X2, X3}. Then a vector Z is in the span of the vectors {X1, X2, X3} if and only if the interior product of Z with each 1-form in C is zero.
E5 >
|
C := Annihilator([X1, X2, X3]);
|
| (4.11) |
E5 >
|
f := (i,j) -> Hook([X12, X13, X23][i], C[j]);
|
| (4.12) |
| (4.13) |
|
|
Application 2 -- Integrable distributions
|
|
This is a continuation of the previous example. We use the Maple command pdsolve to find the invariant functions for the distribution defined by the vectors {X1, X2, X3}.
E5 >
|
Eq := map(LieDerivative, [X1, X2, X3], f(x, y, z, u, v));
|
| (5.1) |
A very useful command for improving the output of these computations is the PDEtools command declare.
E5 >
|
PDEtools[declare](f(x, y, z, u, v));
|
| (5.2) |
| (5.3) |
E5 >
|
pdsolve(Eq, f(x, y, z, u, v));
|
| (5.4) |
We conclude that a pair of fundamental solutions are.
E5 >
|
f1 := x^2 + z*u: f2 := y^2 + z*v:
|
Check these results using the LieDerivative command.
E5 >
|
check := [seq(seq(LieDerivative(X, f), X=[X1, X2, X3]), f=[f1, f2])];
|
| (5.5) |
Check these results using the pdetest command.
E5 >
|
pdetest(f(x, y, z, u, v) = f1, Eq);
|
| (5.6) |
E5 >
|
pdetest(f(x, y, z, u, v) = f2, Eq);
|
| (5.7) |
Thus the integral manifolds for the 3 dimensional integrable distribution {X1, X2, X3} are the 3 dimensional level surfaces:
x^2 + z*u = c1 and y^2 + z*v = c2.
|
|
DGmap
|
|
The DGmap command allows one to apply Maple commands to the coefficients of a DifferentialGeometry vector, form, or tensor. We shall use this utility in the next application. To understand the syntax for this command, it is helpful to first read the help pages for the Maple map and map2 commands. Here are a few simply examples.
E5 >
|
with(DifferentialGeometry):
|
E5 >
|
DGsetup([x, y], E2);
|
Define a vector field X, depending upon parameter t.
E5 >
|
X := evalDG( x*D_x + t*y*D_y);
|
| (6.1) |
Add 2 to each coefficient of X.
E2 >
|
Tools:-DGmap(1, a -> a + 2, X);
|
| (6.2) |
Differentiate each coefficient of X with respect to t.
E2 >
|
Tools:-DGmap(1, diff, X ,t);
|
| (6.3) |
Integrate each coefficient of X with respect to t from 0 to 1.
E2 >
|
Tools:-DGmap(1, int, X, t = 0 .. 1);
|
| (6.4) |
|
|
Application 3 -- Killing Vector Fields
|
|
In this application, we shall find the infinitesimal symmetries or Killing vectors for the Poincare half-plane. Recall that a vector field X is a Killing vector for a metric tensor g if LieDerivative(X, g) = 0.
E2 >
|
with(DifferentialGeometry):
|
E2 >
|
DGsetup([x, y], E2);
|
| (7.1) |
Define the metric g for the Poincare half-plane.
E2 >
|
g := (1/y^2) &mult evalDG(dx &t dx + dy &t dy);
|
| (7.2) |
Define a general vector on E2.
E2 >
|
X := evalDG(a(x, y)*D_x + b(x, y)*D_y);
|
| (7.3) |
E2 >
|
PDEtools[declare](a(x, y), b(x, y));
|
| (7.4) |
Calculate the Lie derivative of the metric g with respect to the vector field X.
E2 >
|
LD := LieDerivative(X, g);
|
| (7.5) |
Extract the coefficients of the Lie derivative LD to obtain the Killing equations for the metric.
E2 >
|
KillingEq := Tools:-DGinfo(LD, "CoefficientSet");
|
| (7.6) |
Solve the Killing equations with pdsolve.
E2 >
|
soln := pdsolve(KillingEq, {a(x, y), b(x, y)});
|
| (7.7) |
Substitute the solution obtained by pdsolve back into the vector field X.
E2 >
|
newX := eval(X, soln);
|
| (7.8) |
We use the DGmap utility (see previous section) to generate the 3 Killing vectors associated to the constants _C1, _C2, _C3.
E2 >
|
X1 := Tools:-DGmap(1, diff, newX, _C1);
|
| (7.9) |
E2 >
|
X2 := Tools:-DGmap(1, diff, newX, _C2);
|
| (7.10) |
E2 >
|
X3 := Tools:-DGmap(1, diff, newX, _C3);
|
| (7.11) |
E2 >
|
Gamma := [X1, X2, X3]:
|
We can use the GetComponents command to check that these three vectors define a Lie algebra, that is, that their Lie brackets are constant linear combinations of Gamma.
E2 >
|
GetComponents(LieBracket(X1, X2), Gamma, method = "real");
|
| (7.12) |
E2 >
|
GetComponents(LieBracket(X1, X3), Gamma, method = "real");
|
| (7.13) |
E2 >
|
GetComponents(LieBracket(X2, X3), Gamma, method = "real");
|
| (7.14) |
Later on, we shall see that the command LieAlgebraData, in the LieAlgebras package, will do this automatically. See also the commands InfinitesimalSymmetriesOfGeometricObjectFields and KillingVectors which automate the computations presented in this section.
|
|
Exercises
|
|
|
Exercise 1
|
|
For the vector fields, differential forms, and tensors defined below, calculate
[i] the Lie bracket of X and Y.
[ii] the iterated Lie bracket [X, [X, [X, Y]]] and conjecture what the general formula is for the k-th iterated bracket.
[iii] the Lie bracket of X and x^2*Y - x*y*X.
[iv] the Lie derivative of f with respect to X.
[v] the Lie derivative of beta with respect to X.
[vi] the Lie derivative with respect to Y of the interior product of X and alpha.
[vii] the Lie derivative of the tensor product of T with X with respect to X.
E3 >
|
with(DifferentialGeometry):
|
E5 >
|
DGsetup([x, y, z], M):
|
M >
|
X := evalDG(x* D_x - y*z*D_y);
|
| (8.1.1) |
M >
|
Y := evalDG(z^2*x*D_z);
|
| (8.1.2) |
M >
|
f := sin(x*y) + tan(y*z);
|
| (8.1.3) |
M >
|
alpha := evalDG(z*dx &w dy - dy &w dz);
|
| (8.1.4) |
M >
|
beta := evalDG(dx &w dy &w dz);
|
| (8.1.5) |
M >
|
T := evalDG(z*dx &t D_y &t dz);
|
| (8.1.6) |
|
Solution
|
|
[i] the Lie bracket of X and Y.
| (8.1.1.1) |
[ii] the iterated Lie bracket [X, [X, [X, Y]]].
M >
|
X3 := LieBracket(X, LieBracket(X, LieBracket(X, Y)));
|
| (8.1.1.2) |
M >
|
X4 := LieBracket(X, X3);
|
| (8.1.1.3) |
| (8.1.1.4) |
[iii] the Lie bracket of X and x^2*Y - x*y*X. Note that it is not necessary to "wrap" the arguments of LieBracket in evalDG.
M >
|
LieBracket(X, x^2*y*Y - x*y*X);
|
| (8.1.1.5) |
[iv] the Lie derivative of f with respect to X.
| (8.1.1.6) |
[v] the Lie derivative of beta with respect to X.
M >
|
LieDerivative(X, beta);
|
| (8.1.1.7) |
[vi] the Lie derivative with respect to Y of the interior product of X and alpha.
M >
|
LieDerivative(Y, Hook(X, alpha));
|
| (8.1.1.8) |
[vii] the Lie derivative of the tensor product of T with X with respect to X.
M >
|
LieDerivative(X, T &t X);
|
| (8.1.1.9) |
|
|
|
Exercise 2
|
|
Write programs which will test the following identities satisfied by the LieBracket [X, Y] and the LieDerivative L_X(T). Each program should return {0} if the identity is satisfied.
[i] [X, Y] = -[Y, X].
[ii] [X, f*Y] = X(f)*Y + f* [X, Y].
[iii] [X, [Y, Z]] + [Z, [X, Y]] + [ Y, [Z, X]] = 0.
[iv] L_X(alpha &w beta) = L_X(alpha) &w beta + alpha &w L_X(beta), where alpha and beta are differential forms.
[v] L_X(T &t S) = L_X(T) &t S + S &t L_X(T), where T and S are tensor fields.
[vi] L_X(Hook(Y, alpha)) = Hook([X, Y], alpha) + Hook(Y, L_X(alpha)).
[vii] L_X L_Y(T) - L_Y L_X(T) = L_[X, Y] T, where T is a vector, differential form, or tensor field.
M >
|
with(DifferentialGeometry):
|
|
Solution
|
|
Here are the programs:
[i] [X, Y] = - [Y, X].
E2 >
|
LieBracketSkewSymmetric := proc(X, Y)
|
E2 >
|
a := LieBracket(X, Y) &plus LieBracket(Y, X);
|
E2 >
|
Tools:-DGinfo(a, "CoefficientSet");
|
[ii] [X, f*Y] = X(f)*Y + f* [X, Y].
E2 >
|
LieBracketDerivation := proc(X, Y, f)
|
E2 >
|
local a, b, b1, b2, c;
|
E2 >
|
a := LieBracket(X, f &mult Y);
|
E2 >
|
b1 := LieDerivative(X, f) &mult Y;
|
E2 >
|
b2 := f &mult LieBracket(X, Y);
|
E2 >
|
Tools:-DGinfo(c, "CoefficientSet");
|
[iii] [X, [Y, Z]] + [Z, [X, Y]] + [ Y, [Z, X]] = 0.
E2 >
|
LieBracketJacobi := proc(X, Y, Z)
|
E2 >
|
local a, a1, a2, a3;
|
E2 >
|
a1 := LieBracket(X, LieBracket(Y, Z));
|
E2 >
|
a2 := LieBracket(Z, LieBracket(X, Y));
|
E2 >
|
a3 := LieBracket(Y, LieBracket(Z, X));
|
E2 >
|
a := a1 &plus a2 &plus a3;
|
E2 >
|
Tools:-DGinfo(a,"CoefficientSet");
|
We use DGinfo/ObjectType to combine [iv] and [v] into one identity.
[iv] L_X (alpha &w beta) = L_X(alpha) &w beta + alpha &w L_X(beta), where alpha and beta are differential forms.
[v] L_X (T &t S) = L_X(T) &t S + S &t L_X(T), where T and S are tensor fields.
E2 >
|
LieDerivativeDerivation := proc(X, T, S)
|
E2 >
|
local DGobject, M, a, b, b1, b2, c;
|
E2 >
|
DGobject := Tools:-DGinfo(T, "ObjectType");
|
E2 >
|
if DGobject = "form" then
|
E2 >
|
M := (x, y) -> x &wedge y;
|
E2 >
|
M := (x, y) -> x &tensor y;
|
E2 >
|
a := LieDerivative(X, M(T, S));
|
E2 >
|
b1 := M(LieDerivative(X, T), S);
|
E2 >
|
b2 := M(T, LieDerivative(X, S));
|
E2 >
|
Tools:-DGinfo(c, "CoefficientSet");
|
[vi] L_X(Hook(Y, alpha)) = Hook([X, Y], alpha) + Hook(Y, L_X(alpha))
M >
|
LieDerivativeHook := proc(X, Y, alpha)
|
M >
|
local a, a1, b, b1, b2, b3, b4, c;
|
M >
|
a1 := Hook(Y, alpha);
|
M >
|
a := LieDerivative(X, a1);
|
M >
|
b1 := LieBracket(X, Y);
|
M >
|
b2 := Hook(b1, alpha);
|
M >
|
b3 := LieDerivative(X, alpha);
|
M >
|
Tools:-DGinfo(c, "CoefficientSet");
|
[vii] L_X L_Y(T) - L_Y L_X(T) = L_[X, Y] T, where T is a vector, differential form, or tensor field.
E2 >
|
LieDerivativeCommutator := proc(X, Y, T)
|
E2 >
|
local a, a1, a2, b, b1, c;
|
E2 >
|
a1 := LieDerivative(X, LieDerivative(Y, T));
|
E2 >
|
a2 := LieDerivative(Y, LieDerivative(X, T));
|
E2 >
|
b1 := LieBracket(X, Y);
|
E2 >
|
b := LieDerivative(b1, T);
|
E2 >
|
Tools:-DGinfo(c, "CoefficientSet");
|
Here is some test data.
E3 >
|
DGsetup([x, y, z], E3);
|
| (8.2.1.1) |
E3 >
|
X1 := evalDG(y*z*D_x - (x^2 + y^2)*D_y + 3*D_z);
|
| (8.2.1.2) |
E3 >
|
X2 := evalDG(D_x + x^2*D_y - x*y*D_z);
|
| (8.2.1.3) |
E3 >
|
X3 := evalDG(z^2*D_x - x^2*D_y + D_z);
|
| (8.2.1.4) |
| (8.2.1.5) |
E3 >
|
alpha1 := evalDG(x^2*dx &w dy - (y/z)*dy &w dz);
|
| (8.2.1.6) |
E3 >
|
alpha2 := evalDG(z*dx + x*dy);
|
| (8.2.1.7) |
E3 >
|
T1 := evalDG(z*dx &t D_y + x^2*dy &t D_z);
|
| (8.2.1.8) |
E3 >
|
T2 := evalDG(z*D_x &t D_y + x^2*D_z &t D_z);
|
| (8.2.1.9) |
Here are some tests of the identities.
E3 >
|
LieBracketSkewSymmetric(X1, X2);
|
| (8.2.1.10) |
E3 >
|
LieBracketDerivation(X1, X2, f);
|
| (8.2.1.11) |
E3 >
|
LieBracketJacobi(X1, X2, X3);
|
| (8.2.1.12) |
E3 >
|
LieDerivativeDerivation(X1, alpha1, alpha2);
|
| (8.2.1.13) |
E3 >
|
LieDerivativeDerivation(X2, T1, T2);
|
| (8.2.1.14) |
E3 >
|
LieDerivativeHook(X1, X2, alpha1);
|
| (8.2.1.15) |
E3 >
|
LieDerivativeCommutator(X1, X2, alpha1);
|
| (8.2.1.16) |
E3 >
|
LieDerivativeCommutator(X2, X3, T2);
|
| (8.2.1.17) |
|
|
|
Exercise 3
|
|
[i] Write a program, DerivedDistribution, whose input is a list of vector fields V and which returns a basis for V1 = V + [V, V], the space of vectors spanned by the elements of V and all possible brackets of elements of V. The distribution of vectors spanned by V1 is called the derived distribution of V.
[ii] Write a program, CheckIntegrable, whose input is a list of vector fields V and which returns true or false according to whether the list of vectors define an integrable distribution or not. If false, then also return the pair of vectors whose bracket is not in V.
[iii] Test your programs on the distributions Va, Vb, Vc, Vd. If the distribution is not integrable, calculate the derived distribution and test it's integrability.
E3 >
|
with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z, u, v, w], E6):
|
E6 >
|
Va := evalDG([z*u*D_x - 2*x*z*D_z + 2*v*x*D_v, z*D_y - 2*y*D_v, -z*D_z + u*D_u + v*D_v]);
|
| (8.3.1) |
E6 >
|
Vb := evalDG([D_x, D_y + x*D_z]);
|
| (8.3.2) |
E6 >
|
Vc := evalDG([x*D_u - y*D_v, y*D_u + x*D_v, -x*D_x - y*D_y + z*D_v, y*D_x - x*D_y - z*D_u]);
|
| (8.3.3) |
E6 >
|
Vd := evalDG([D_u, D_x + z*D_y + u*D_z + exp(y)*D_v + exp(y)*v*D_w]);
|
| (8.3.4) |
|
Solution
|
|
Part [i]
M >
|
DerivedDistribution := proc(V)
|
M >
|
local V1, V2, p, i, j, k;
|
M >
|
V1 := Array(1 .. p*(p + 1)/2);
|
M >
|
for j from i + 1 to p do
|
M >
|
V1[k] := LieBracket(V[i], V[j]);
|
M >
|
V2 := convert(V1, list);
|
Part [ii]
M >
|
CheckIntegrable := proc(V1)
|
M >
|
local p, i, j, ans, Z;
|
M >
|
for j from i + 1 to p do
|
M >
|
Z := LieBracket(V1[i], V1[j]);
|
M >
|
ans := GetComponents(Z, V1);
|
M >
|
if ans = [] then return(false, i, j) fi;
|
Example 1. The distribution of vectors Va is integrable.
E6 >
|
CheckIntegrable(Va);
|
| (8.3.1.1) |
Example 2. The distribution of vectors Vb is not integrable. The derived distribution of Vb is integrable.
E6 >
|
CheckIntegrable(Vb);
|
| (8.3.1.2) |
E6 >
|
Vb1 := DerivedDistribution(Vb);
|
| (8.3.1.3) |
E6 >
|
CheckIntegrable(Vb1);
|
| (8.3.1.4) |
Example 3. The distribution of vectors Vc is integrable.
E6 >
|
CheckIntegrable(Vc);
|
| (8.3.1.5) |
Example 4. The distribution of vectors Vd is not integrable. We must calculate several derived distributions before arriving at an integrable one.
E6 >
|
CheckIntegrable(Vd);
|
E6 >
|
Vd1 := DerivedDistribution(Vd);
|
| (8.3.1.6) |
E6 >
|
CheckIntegrable(Vd1);
|
| (8.3.1.7) |
E6 >
|
Vd2 := DerivedDistribution(Vd1);
|
| (8.3.1.8) |
E6 >
|
CheckIntegrable(Vd2);
|
| (8.3.1.9) |
E6 >
|
Vd3 := DerivedDistribution(Vd2);
|
| (8.3.1.10) |
E6 >
|
CheckIntegrable(Vd3);
|
| (8.3.1.11) |
|
|
|
Exercise 4
|
|
Show that the vector fields Gamma define a real 4 dimensional Lie algebra (with Lie bracket given by LieBracket).
E6 >
|
with(DifferentialGeometry):
|
E6 >
|
DGsetup([w,x,y,z], E4);
|
E6 >
|
Gamma := evalDG([D_w, D_x, x*D_w + D_y, (1/2*y^2 + 2*w)*D_w + (y + x)*D_x + y*D_y + D_z]);
|
| (8.4.1) |
|
Solution
|
|
We have to show that the Lie bracket of Gamma[i] and Gamma[j] is a constant linear combination of the vectors in Gamma.
The easiest way to do this is with the following procedure.
E4 >
|
F := (i,j) -> GetComponents(LieDerivative(Gamma[i], Gamma[j]), Gamma, method = "real");
|
| (8.4.1.1) |
E4 >
|
Answer := Matrix(4, 4, (i, j) -> F(i, j));
|
| (8.4.1.2) |
Since all the components are constant, we conclude that the vector fields Gamma define a 4 dimensional Lie algebra.
|
|
|
Exercise 5
|
|
Find a set of 4 pointwise linearly independent vector fields which commute with the list of vector fields Gamma defined in Exercise 4.
This (Lie algebra) of vector fields is sometimes referred to as the reciprocal Lie algebra to the Lie algebra of vector fields Gamma.
E4 >
|
with(DifferentialGeometry): DGsetup([w, x, y, z], E4);
|
| (8.5.1) |
E4 >
|
Gamma := evalDG([D_w, D_x, x*D_w + D_y, (1/2*y^2 + 2*w)*D_w + (y + x)*D_x + y*D_y + D_z]);
|
| (8.5.2) |
|
Solution
|
|
| (8.5.1.1) |
E4 >
|
PDETools[declare](a1(vars), a2(vars), a3(vars), a4(vars));
|
E4 >
|
Z := DGzip([a1(vars), a2(vars), a3(vars), a4(vars)], [D_x, D_y, D_z, D_w], "plus");
|
| (8.5.1.3) |
E4 >
|
EQ := {seq(Tools:-DGinfo(LieBracket(Z, X), "CoefficientSet"), X = Gamma)};
|
| (8.5.1.4) |
| (8.5.1.5) |
E4 >
|
soln := pdsolve(EQ, {a1(vars), a2(vars), a3(vars), a4(vars)});
|
| (8.5.1.6) |
E4 >
|
newZ := eval(Z, soln);
|
| (8.5.1.7) |
E4 >
|
Answer := [seq(Tools:-DGmap(1, diff, newZ, cat(_C, i)), i = 1 .. 4)];
|
| (8.5.1.8) |
Let's check this result.
E4 >
|
Matrix(4, 4, (i, j)->LieBracket(Gamma[i], Answer[j]));
|
| (8.5.1.9) |
|
|
|
Exercise 6
|
|
Find the Killing vectors for the following metrics.
E4 >
|
with(DifferentialGeometry):
|
[i] This is the metric for a two-dimensional space of constant curvature.
E4 >
|
DGsetup([u, v], M2);
|
| (8.6.1) |
M2 >
|
g1 := evalDG( 1/(1 + k/4*(u^2 + v^2))^2*(du &t du + dv &t dv));
|
| (8.6.2) |
[ii] This is the Godel solution to the Einstein equations.
M2 >
|
DGsetup([x ,y, z, t], M4);
|
| (8.6.3) |
M4 >
|
tau := evalDG(dt + exp(x)*dz);
|
| (8.6.4) |
M4 >
|
g2 := evalDG(dx &t dx + dy &t dy + 1/2*exp(2*x)*dz &t dz - tau &t tau);
|
| (8.6.5) |
|
Solution
|
|
Part [i]
Define a general vector field X.
M2 >
|
PDEtools[declare](a(u, v), b(u, v), quiet);
|
M2 >
|
X := evalDG(a(u, v)*D_u + b(u, v)*D_v);
|
| (8.6.1.1) |
Calculate the Lie derivative of the metric g1 with respect to X.
M2 >
|
LD := LieDerivative(X, g1);
|
| (8.6.1.2) |
Extract the coefficients of the Lie derivative LD.
M2 >
|
KillingEq := Tools:-DGinfo(LD, "CoefficientSet");
|
| (8.6.1.3) |
Solve for the unknown coefficients a(u, v), b(u, v).
M2 >
|
soln := pdsolve(KillingEq, {a(u, v), b(u, v)});
|
| (8.6.1.4) |
M2 >
|
newX := eval(X, soln);
|
| (8.6.1.5) |
We use the DGmap utility to generate the 3 Killing vectors associated to the constants _C1, _C2, _C3.
M2 >
|
X1 := Tools:-DGmap(1, diff, newX, _C1);
|
| (8.6.1.6) |
M2 >
|
X2 := Tools:-DGmap(1, diff, newX, _C2);
|
| (8.6.1.7) |
M2 >
|
X3 := Tools:-DGmap(1, diff, newX, _C3);
|
| (8.6.1.8) |
The Killing vectors for the metric g1 are
M2 >
|
Answer1 := [X1, X2, X3];
|
| (8.6.1.9) |
Part [ii]
M4 >
|
unknowns := [a1, a2, a3, a4](vars):
|
M4 >
|
PDEtools[declare](unknowns, quiet);
|
M4 >
|
X := DGzip(unknowns, [D_x, D_y, D_z, D_t], "plus");
|
| (8.6.1.10) |
M4 >
|
LD := LieDerivative(X, g2);
|
| (8.6.1.11) |
M4 >
|
KillingEq := Tools:-DGinfo(LD, "CoefficientSet");
|
| (8.6.1.12) |
M4 >
|
soln := pdsolve(KillingEq, convert(unknowns, set));
|
| (8.6.1.13) |
M4 >
|
newX := eval(X, soln);
|
| (8.6.1.14) |
We use the DGmap utility to generate the 3 Killing vectors associated to the constants _C1, ..., _C5.
The Killing vectors for the Godel metric are
M4 >
|
Answer2 := [seq(Tools:-DGmap(1, diff, newX, _C||i), i = 1 .. 5)];
|
| (8.6.1.15) |
|
|
|
Exercise 7
|
|
In this exercise, we consider the inverse problem to the problem of calculating the Killing vectors for a given metric. Here we are given a Lie algebra of vector fields Gamma and the problem is to find the most general metric which is invariant with respect to Gamma.
The following three examples are taken from Petrov's book Einstein Spaces. Note that the metrics given by Petrov are not the most general invariant metrics for the given Lie algebra of vector fields.
M4 >
|
with(DifferentialGeometry): DGsetup([x1, x2, x3, x4], P):
|
[i] Find the most general metric which is invariant under Lie differentiation with respect to the Lie algebra of vector fields Gamma1 [Einstein Spaces -- equation 32.8].
P >
|
Gamma1:= evalDG([exp(-x3)*D_x1 - exp(-x3)*x2^2*D_x2 - 2*exp(-x3)*x2*D_x3, D_x3, exp(x3)*D_x2, D_x1]);
|
| (8.7.1) |
[ii] Find the most general metric which is invariant under Lie differentiation with respect to the Lie algebra of vector fields Gamma2 [Einstein Spaces -- equation 33.14].
P >
|
Gamma2 := evalDG([D_x2, D_x3, x3*D_x2 - exp(x1)*D_x3, D_x1 + x2*D_x2 + x3*D_x3, exp(-x1)*D_x1 + (k*x1 - 1/2*exp(-2*x4))*D_x2 + exp(-x1)*D_x4]);
|
| (8.7.2) |
[iii] Find the most general metric which is invariant under Lie differentiation with respect to the Lie algebra of vector fields Gamma3 [Einstein Spaces -- equation 33.45].
P >
|
Gamma3 := [D_x1, D_x2, (x1^2 - x2^2 - x3^2 + x4^2)*D_x1 + 2*x1*x2*D_x2 + 2*x1*x3*D_x3 + 2*x1*x4*D_x4, 2*x1*x2*D_x1 + (x2^2 - x1^2 - x3^2 + x4^2)*D_x2 + 2*x3*x2*D_x3 + 2*x4*x2*D_x4, x2*D_x1 - x1*D_x2, x1*D_x1 + x2*D_x2 + x3*D_x3 + x4*D_x4];
|
| (8.7.3) |
|
Solutions
|
|
We remark that to solve this problem it is helpful to first calculate the Gamma invariant functions and the Gamma invariant 1-forms.
Part [i] First, we calculate the invariant functions -- the invariant tensors are always a module over the ring of invariant functions.
P >
|
vars := x1, x2, x3, x4;
|
| (8.7.1.1) |
P >
|
EQ1 := {seq(LieDerivative(X, f(vars)), X = Gamma1)};
|
| (8.7.1.2) |
| (8.7.1.3) |
Now we calculate the invariant 1-forms. We already know that because x4 is an invariant dx4 will be an invariant 1-form. Are there other invariant 1-forms?
First we create the general 1-form alpha.
P >
|
unknowns := seq(a||i(vars), i = 1 .. 4):
|
P >
|
PDEtools[declare](unknowns, quiet);
|
P >
|
alpha := DGzip([unknowns], [dx1, dx2, dx3, dx4], "plus");
|
| (8.7.1.4) |
Lie differentiate alpha with respect to each vector in Gamma1 and get the coefficients of the result.
P >
|
EQ2 := {seq(Tools:-DGinfo(LieDerivative(X, alpha), "CoefficientSet"), X = Gamma1)}:
|
P >
|
InvariantOneFormEquations := map(op, EQ2);
|
| (8.7.1.5) |
P >
|
pdsolve(InvariantOneFormEquations);
|
| (8.7.1.6) |
We conclude that a basis for the invariant 1-forms is Omega = [dx2 - x2dx3, dx4]. Let's check this result.
P >
|
Omega := evalDG([dx2 - x2*dx3, dx4]);
|
| (8.7.1.7) |
P >
|
Matrix(2, 4, (i, j) -> LieDerivative(Gamma1[j], Omega[i]));
|
| (8.7.1.8) |
Now we calculate the invariant symmetric, rank 2 covariant tensors. We already have three such tensors generated from the invariant 1-forms. These are listed in the set S0. Are there more invariant symmetric tensors?
P >
|
S0 := Tensor:-GenerateSymmetricTensors(Omega, 2);
|
| (8.7.1.9) |
First, we create the general invariant symmetric tensor.
P >
|
unknowns := seq(b||i(vars), i = 1 .. 10):
|
P >
|
PDEtools[declare](unknowns, quiet);
|
P >
|
S := Tensor:-GenerateSymmetricTensors([dx1, dx2, dx3, dx4], 2):
|
P >
|
g := DGzip([unknowns], S, "plus");
|
| (8.7.1.10) |
Lie differentiate g with respect to each vector in Gamma1 and get the coefficients of the result.
P >
|
EQ3 := {seq(Tools:-DGinfo(LieDerivative(X, g), "CoefficientSet"), X = Gamma1)}:
|
P >
|
InvariantSymmetricTensorEq := map(op, EQ3);
|
| (8.7.1.11) |
P >
|
soln := pdsolve(InvariantSymmetricTensorEq);
|
| (8.7.1.12) |
Since the solution depends upon 4 functions of the invariant x4, we conclude that there is one invariant symmetric tensor which is independent of the invariant symmetric tensors generated by the invariant 1-forms.
P >
|
newg := Tools:-DGsimplify(eval(g, soln));
|
| (8.7.1.13) |
P >
|
g1 := Tools:-DGsimplify(eval(newg, {_F1(x4) = 1, _F2(x4) = 0, _F3(x4) = 0, _F4(x4) = 0}));
|
| (8.7.1.14) |
P >
|
g2 := Tools:-DGsimplify(eval(newg, {_F1(x4) = 0, _F2(x4) = 1, _F3(x4) = 0, _F4(x4) = 0}));
|
| (8.7.1.15) |
P >
|
g3 := Tools:-DGsimplify(eval(newg, {_F1(x4) = 0, _F2(x4) = 0, _F3(x4) = 1, _F4(x4) = 0}));
|
| (8.7.1.16) |
P >
|
g4 := Tools:-DGsimplify(eval(newg, {_F1(x4) = 0, _F2(x4) = 0, _F3(x4) = 1, _F4(x4) = 1}));
|
| (8.7.1.17) |
We have that g1, g2, g3 are all symmetric products of the invariant 1-forms and g4 is the new invariant tensor (which can be simplified).
P >
|
Answer1 := [op(S0), g4 &minus S0[1]];
|
| (8.7.1.18) |
Check that all the tensors in Answer1 are invariant.
P >
|
Matrix(4, 4, (i, j) -> LieDerivative(Gamma1[i], Answer1[j]));
|
| (8.7.1.19) |
Summary: The most general invariant metric is
P >
|
g := DGzip([a1(x4), a2(x4), a3(x4), a4(x4)], Answer1, "plus");
|
| (8.7.1.20) |
The calculations for problems [ii] and [iii] follow exactly the same steps. Here are the answers.
Part [ii]
P >
|
InvariantFunctions := [];
|
| (8.7.1.21) |
P >
|
InvariantOneForms := evalDG([exp(x4)*dx1, dx1 - dx4]);
|
| (8.7.1.22) |
P >
|
Matrix(2, 5, (i, j) -> LieDerivative(Gamma2[j], InvariantOneForms[i]));
|
| (8.7.1.23) |
P >
|
InvariantSymmetricTensors := evalDG([exp(2*x4)*dx1 &t dx1, exp(x4)*dx1 &t dx1 - 1/2*exp(x4)*dx1 &t dx4 - 1/2*exp(x4)*dx4 &t dx1, dx1 &t dx1 - dx1 &t dx4 - dx4 &t dx1 + dx4 &t dx4, -2*k*exp(2*x4)*x4*dx1 &t dx1 + exp(-x1 + 2*x4)*dx1 &t dx2 + exp(-x1 + 2*x4)*dx2 &t dx1 + exp(2*x4 - 2*x1)*dx3 &t dx3 + dx4 &t dx4]);
|
| (8.7.1.24) |
P >
|
Matrix(4, 5, (i, j) -> LieDerivative(Gamma2[j], InvariantSymmetricTensors[i]));
|
| (8.7.1.25) |
Part [iii]
P >
|
InvariantFunctions := [x4/x3];
|
| (8.7.1.26) |
P >
|
Matrix(1, 6, (i, j) -> LieDerivative(Gamma3[j], InvariantFunctions[i]));
|
| (8.7.1.27) |
P >
|
InvariantOneForms := evalDG([-1/x3*dx3 + 1/x4*dx4]);
|
| (8.7.1.28) |
P >
|
Matrix(1, 6, (i, j) -> LieDerivative(Gamma3[j], InvariantOneForms[i]));
|
| (8.7.1.29) |
P >
|
InvariantSymmetricTensors := evalDG([1/x3^2*dx3 &t dx3 - 1/x3/x4*dx3 &t dx4-1/x3/x4*dx4 &t dx3 + 1/x4^2*dx4 &t dx4, 1/(x4^2 + x3^2)*dx1 &t dx1 + 1/(x4^2 + x3^2)*dx2 &t dx2 + 1/x3^2*dx3 &t dx3 - x4/x3/(x4^2 + x3^2)*dx3 &t dx4 - x4/x3/(x4^2 + x3^2)*dx4 &t dx3]);
|
| (8.7.1.30) |
P >
|
Matrix(2, 6, (i, j) -> LieDerivative(Gamma3[j], InvariantSymmetricTensors[i]));
|
| (8.7.1.31) |
|
|
|
�Ian M. Anderson 2006
|