Tensor[SubspaceType] - determine the signature of the metric restricted to a subspace of the tangent space
Calling Sequences
SubspaceType(g, S, pt, output)
g - a metric tensor g on an n-dimensional manifold M. The signature of g is arbitrary
S - a list of vectors defining a subspace S of the tangent space of M
pt - (optional) a list of equations specifying the coordinates of a point p of M
output - (optional) a keyword argument, one of "Matrix", "Riemannian", "PseudoRiemannian", "Null"
Description
Examples
See Also
Let p∈M and let S be a k-dimensional subspace of the tangent space TpM. Let Y1,Y2, ..., Yk be a basis for S and let h be the k×k matrix with components
hij=gpYi,Yj, i,j=1,2,..,k .
The matrix h defines the metric on the subspace S induced by g. The subspace S is called "Riemannian" if h is positive or negative definite; "PseudoRiemannian" if h is indefinite and non-degenerate; and "Null" if h is degenerate (deth=0).
Let S be the span of m vectors X1,X2,...,Xm; these vectors need not be linearly independent. The command SubspaceType(g, S) will attempt to determine the type of the subspace S at a generic point. It will return a sequence k, T, where k is the dimension of S and T is one of {"Riemannian", "PseudoRiemannian", "Null", Fail}. The value Fail typically indicates the subspace type is varying with respect to coordinates or parameters.
With the optional argument pt, the type of the subspace S at pt is determined. Specific properties of the coordinates of the point pt can be specified using assuming.
With the keyword argument output = "Matrix", the values of the matrix h and the basis used to compute h, evaluated at the point p, are returned.
With the keyword argument output = "Riemannian", output = "PseudoRiemannian" or output = "Null", the command returns the sequence k, TF, where k is the dimension of the subspace S and TF is true or false.
The user can trace the program branching by setting infolevel[SubspaceType] := 2.
This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form SubspaceType(...) only after executing the commands with(DifferentialGeometry); with(Tensor); in that order. It can always be used in the long form DifferentialGeometry:-Tensor:-SubspaceType.
with⁡DifferentialGeometry:with⁡Tensor:
For Examples 1 -- 4 we use coordinates t,x,y,z and the metric g.
DGsetup⁡t,x,y,z,M
frame name: M
g≔evalDG⁡dt&tdt−dx&tdx−dy&tdy−dz&tdz
g:=dt⁢dt−dx⁢dx−dy⁢dy−dz⁢dz
Example 1.
S1≔D_x,D_y
S1:=D_x,D_y
SubspaceType⁡g,S1
2,Riemannian
S2≔D_t,D_x
S2:=D_t,D_x
SubspaceType⁡g,S2
2,PseudoRiemannian
S3≔D_t−D_x,D_y
S3:=D_t−D_x,D_y
SubspaceType⁡g,S3
2,Null
Example 2.
Here we give a simple example where the subspace type depends upon the value of the coordinates t and x.
S≔t⁢D_t−x⁢D_x,D_y
S:=D_t⁢t−D_x⁢x,D_y
Because the subspace type depends upon t and x, the first call to SubspaceType fails.
SubspaceType⁡g,S
2,Fail
Specify the coordinates of a point and set the output option to "Matrix" to find the matrix form of the metric restricted to the subspace S.
SubspaceType⁡g,S,t=a,x=b,y=c,z=d,output=Matrix
By inspection, we see that there are 3 possibilities:
Case 1. If a=b or a=−b, then the subspace type is "Null".
SubspaceType⁡g,S,t=a,x=a,y=c,z=d
SubspaceType⁡g,S,t=a,x=−a,y=c,z=d
Case 2. If a2>b2, then the subspace type is "PseudoRiemannian".
SubspaceType⁡g,S,t=a,x=b,y=c,z=dassumingb2<a2
Case 3. If a2<b2, then the subspace type is "Riemannian".
SubspaceType⁡g,S,t=a,x=b,y=c,z=dassuminga2<b2
Example 3.
With the keyword argument output = "Riemannian", output = "PseudoRiemannian", or output = "Null", the command returns the sequence k, TF.
SubspaceType⁡g,S2,output=Null
2,false
Example 4.
infolevelSubspaceType≔2
infolevelDifferentialGeometry:-Tensor:-SubspaceType:=2
The orbit type is "Null" if the induced metric on the orbit is degenerate The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite The matrix h defining the induced metric is:
Matrix(2, 2, [[1,0],[0,-1]]) The determinant of the matrix h is: -1
infolevelSubspaceType≔0
infolevelDifferentialGeometry:-Tensor:-SubspaceType:=0
Example 5.
The command SubspaceType works in all dimensions.
DGsetup⁡u,v,t,x,y,z,M
g≔evalDG⁡du&sdv+dt&tdt−dx&tdx−dy&tdy−dz&tdz
g:=12⁢du⁢dv+12⁢dv⁢du+dt⁢dt−dx⁢dx−dy⁢dy−dz⁢dz
S1≔D_u,D_x,D_y
S1:=D_u,D_x,D_y
The orbit type is "Null" if the induced metric on the orbit is degenerate
The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite The matrix h defining the induced metric is: Matrix(3, 3, [[0,0,0],[0,-1,0],[0,0,-1]]) The determinant of the matrix h is: 0
3,Null
S2≔D_t,D_x,D_y,D_z
S2:=D_t,D_x,D_y,D_z
The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite The matrix h defining the induced metric is: Matrix(4, 4, [[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]]) The determinant of the matrix h is: -1
4,PseudoRiemannian
The list of vectors specifying the subspace need not be linearly independent.
S3≔D_x,D_y,y⁢D_x−x⁢D_y
S3:=D_x,D_y,y⁢D_x−x⁢D_y
SubspaceType⁡g,S3,output=Matrix
DifferentialGeometry, Tensor, assuming, infolevel, IsDefinite
Download Help Document