Tensor[PrincipalNullDirections] - find the principal null directions of a 4 dimensional spacetime
Calling Sequences
PrincipalNullDirections(NT, PT)
PrincipalNullDirections(NT, PT, W)
Parameters
NT - a null tetrad for the spacetime metric g
PT - the Petrov type of g
W - (optional) the Weyl tensor of g
Description
Examples
The principal null directions of a spacetime are a fundamental set of invariant directions which play an important role in studying the geometry of the spacetime. Let g be the metric of the spacetime and let W be the Weyl tensor for g. A principal null direction is a null vector k which satisfies the system of non-linear algebraic equations
k[e Wa]bc[d kf] kb kc =0. (*)
Two null vectors which satisfy this equation and are proportional determine the same principal null direction. There are at most 4 distinct principal null directions. The algebraic multiplicities of the principal null vectors are determined by the Petrov type of the spacetime.
TYPE I. The principal null directions are all distinct, that is, mutually non-proportional.
TYPE II. Two of the principal null directions coincide, that is, the algebraic system of equations (*) has a repeated solution. There are 3 distinct principal null directions.
TYPE III. Three of principal null directions coincide. There are 2 distinct principal null directions.
TYPE D. Two pairs of the principal null directions coincide. There are 2 distinct principal null directions.
TYPE N. The principal null directions all coincide. There is just 1 principal null direction.
The command PrincipalNullDirections returns a list of distinct principal null directions for a spacetime as determined by a given null tetrad.
The complicated algebraic equations that must be solved to determine the principal null directions can often be simplified a priori by using an adapted null tetrad. See AdaptedNullTetrad.
The principal null directions are calculated from the factorization of the Weyl spinor as a product of rank 1 spinors -- each distinct spinor in this factorization determines a principal null direction. See WeylSpinor, FactorWeylSpinor.
The command PrincipalNullDirection is part of the DifferentialGeometry:-Tensor package. It can be used in the form PrincipalNullDirection(...) only after executing the commands with(DifferentialGeometry) and with(Tensor), but can always be used by executing DifferentialGeometry:-Tensor:-PrincipalNullDirection(...).
with⁡DifferentialGeometry:with⁡Tensor:
Set the global environment variable _EnvExplicit to true to insure that the principal null directions are free of RootOf expressions.
_EnvExplicit ≔ true:
Example 1. Type I
We calculate the principal null directions for a type I spacetime. First define the coordinates to be used and then define the metric.
DGsetup⁡t,x,y,z,M
frame name: M
g1 ≔ evalDG⁡dt &t dt−t2⁢dx &t dx−x2⁢dy &t dy−dz &t dz
_DG⁡tensor,M,cov_bas,cov_bas,,1,1,1,2,2,−t2,3,3,−x2,4,4,−1,_DG⁡tensor,M,cov_bas,cov_bas,,1,1,1,2,2,−t2,3,3,−x2,4,4,−1
Use the command DGGramSchmidt to form an orthonormal tetrad and the command NullTetrad to obtain a null tetrad for the metric g1.
OT1 ≔ DGGramSchmidt⁡D_t,D_x,D_y,D_z,g1,signature=1,−1,−1,−1assuming0<t,0<x
_DG⁡vector,M,,1,1,_DG⁡vector,M,,2,1t,_DG⁡vector,M,,3,1x,_DG⁡vector,M,,4,1,_DG⁡vector,M,,1,1,_DG⁡vector,M,,2,1t,_DG⁡vector,M,,3,1x,_DG⁡vector,M,,4,1
NT1 ≔ NullTetrad⁡OT1
_DG⁡vector,M,,1,12⁢2,4,12⁢2,_DG⁡vector,M,,1,12⁢2,4,−12⁢2,_DG⁡vector,M,,2,12⁢2t,3,12⁢I⁢2x,_DG⁡vector,M,,2,12⁢2t,3,−12⁢I⁢2x,_DG⁡vector,M,,1,12⁢2,4,12⁢2,_DG⁡vector,M,,1,12⁢2,4,−12⁢2,_DG⁡vector,M,,2,12⁢2t,3,12⁢I⁢2x,_DG⁡vector,M,,2,12⁢2t,3,−12⁢I⁢2x
Check that the metric is of Petrov type I.
PetrovType⁡NT1
I
For type I metrics, there are 4 principal null directions.
PND1 ≔ PrincipalNullDirections⁡NT1,I
_DG⁡vector,M,,1,−2⁢2−2,4,2⁢2−2,_DG⁡vector,M,,1,−2⁢2−2,3,2⁢2−2x,_DG⁡vector,M,,1,−2⁢2−2⁢1+22,3,−2⁢2−2⁢1+22x,_DG⁡vector,M,,1,−12⁢2⁢2−2⁢2+22,4,−12⁢2⁢2−2⁢2+22,_DG⁡vector,M,,1,−2⁢2−2,4,2⁢2−2,_DG⁡vector,M,,1,−2⁢2−2,3,2⁢2−2x,_DG⁡vector,M,,1,−2⁢2−2⁢1+22,3,−2⁢2−2⁢1+22x,_DG⁡vector,M,,1,−12⁢2⁢2−2⁢2+22,4,−12⁢2⁢2−2⁢2+22
We can use the GRQuery command to verify that these are principal null directions. For this the WeylTensor of the metric g1 is needed.
W1 ≔ WeylTensor⁡g1:
map⁡GRQuery,PND1,g1,W1,PrincipalNullDirection
true,true,true,true
Example 2. Type II
We calculate the principal null directions for a type II spacetime. First define the coordinates to be used and then define the metric.
DGsetup⁡r,u,x,y,M
g2 ≔ evalDG⁡2⁢r2⁢dx &t dx+dy &t dy2⁢x3−2⁢du &s dr+3⋅2⁢x+2⁢mr⁢du &t du
_DG⁡tensor,M,cov_bas,cov_bas,,1,2,−1,2,1,−1,2,2,2⁢3⁢r⁢x+mr,3,3,14⁢r2x3,4,4,14⁢r2x3,_DG⁡tensor,M,cov_bas,cov_bas,,1,2,−1,2,1,−1,2,2,2⁢3⁢r⁢x+mr,3,3,14⁢r2x3,4,4,14⁢r2x3
Use the command DGGramSchmidt to form an orthonormal tetrad and the command NullTetrad to obtain a null tetrad for the metric g2.
OT2 ≔ DGGramSchmidt⁡D_r,D_u,D_x,D_y,g2,signature=−1,1,1,1assuming0<r,0<x,0<m
_DG⁡vector,M,,1,12⁢2⁢3⁢r⁢x+m+rr,2,12⁢2,_DG⁡vector,M,,1,−12⁢2⁢3⁢r⁢x+m−rr,2,−12⁢2,_DG⁡vector,M,,3,2⁢x3/2r,_DG⁡vector,M,,4,2⁢x3/2r,_DG⁡vector,M,,1,12⁢2⁢3⁢r⁢x+m+rr,2,12⁢2,_DG⁡vector,M,,1,−12⁢2⁢3⁢r⁢x+m−rr,2,−12⁢2,_DG⁡vector,M,,3,2⁢x3/2r,_DG⁡vector,M,,4,2⁢x3/2r
NT2 ≔ NullTetrad⁡OT2
_DG⁡vector,M,,1,12⁢3⁢r⁢x+m+rr,2,12,4,2⁢x3/2r,_DG⁡vector,M,,1,12⁢3⁢r⁢x+m+rr,2,12,4,−2⁢x3/2r,_DG⁡vector,M,,1,−12⁢3⁢r⁢x+m−rr,2,−12,3,I⁢2⁢x3/2r,_DG⁡vector,M,,1,−12⁢3⁢r⁢x+m−rr,2,−12,3,−I⁢2⁢x3/2r,_DG⁡vector,M,,1,12⁢3⁢r⁢x+m+rr,2,12,4,2⁢x3/2r,_DG⁡vector,M,,1,12⁢3⁢r⁢x+m+rr,2,12,4,−2⁢x3/2r,_DG⁡vector,M,,1,−12⁢3⁢r⁢x+m−rr,2,−12,3,I⁢2⁢x3/2r,_DG⁡vector,M,,1,−12⁢3⁢r⁢x+m−rr,2,−12,3,−I⁢2⁢x3/2r
A simpler choice of null tetrad can be obtained by a re-ordering of the vectors in the orthonormal tetrad -- this is always the case when one of the coordinate vectors is a null vector. See NullTetrad for the formulas used to calculate a null tetrad from an orthonormal tetrad. This simpler choice leads to a quicker calculation of the principal null directions.
NT2 ≔ NullTetrad⁡OT21,OT24,OT23,OT22
_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,3⁢r⁢x+mr,2,1,_DG⁡vector,M,,3,I⁢2⁢x3/2r,4,2⁢x3/2r,_DG⁡vector,M,,3,−I⁢2⁢x3/2r,4,2⁢x3/2r,_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,3⁢r⁢x+mr,2,1,_DG⁡vector,M,,3,I⁢2⁢x3/2r,4,2⁢x3/2r,_DG⁡vector,M,,3,−I⁢2⁢x3/2r,4,2⁢x3/2r
Check that the metric is of Petrov type II.
PetrovType⁡NT2
II
For this example, it is also helpful to calculate the Weyl tensor and use the second calling sequence for PrincipalNullDirections. With this calling sequence all computations are strictly algebraic and assumptions on the ranges of the variables and the parameters can be made to simplify intermediate computations. The Weyl tensor is rather complicated and need not be displayed.
W2 ≔ WeylTensor⁡g2:
For type II metrics, there are 3 principal null directions.
PND2 ≔ PrincipalNullDirections⁡NT2,II,W2assuming0<x,0<y,0<r,3⁢m−2⁢x⁢r<0,m<0
_DG⁡vector,M,,1,−r⁢2⁢r⁢x−3⁢m⁢xm,_DG⁡vector,M,,1,−2⁢x5/2⁢2⁢r5/2⁢2⁢r⁢x−3⁢m+4⁢r3⁢x3−3⁢m⁢r2⁢x2+3⁢m2⁢r⁢x+m3r3/2⁢2⁢r⁢x−3⁢m⁢x⁢m,2,−mr⁢2⁢r⁢x−3⁢m⁢x,3,−2⁢2⁢x⁢2⁢r⁢x+x⁢2⁢r⁢x−3⁢mr⁢2⁢r⁢x−3⁢m,_DG⁡vector,M,,1,2⁢x5/2⁢2⁢r5/2⁢2⁢r⁢x−3⁢m−4⁢r3⁢x3+3⁢m⁢r2⁢x2−3⁢m2⁢r⁢x−m3r3/2⁢2⁢r⁢x−3⁢m⁢x⁢m,2,−mr⁢2⁢r⁢x−3⁢m⁢x,3,2⁢2⁢x⁢−2⁢r⁢x+x⁢2⁢r⁢x−3⁢mr⁢2⁢r⁢x−3⁢m,_DG⁡vector,M,,1,−r⁢2⁢r⁢x−3⁢m⁢xm,_DG⁡vector,M,,1,−2⁢x5/2⁢2⁢r5/2⁢2⁢r⁢x−3⁢m+4⁢r3⁢x3−3⁢m⁢r2⁢x2+3⁢m2⁢r⁢x+m3r3/2⁢2⁢r⁢x−3⁢m⁢x⁢m,2,−mr⁢2⁢r⁢x−3⁢m⁢x,3,−2⁢2⁢x⁢2⁢r⁢x+x⁢2⁢r⁢x−3⁢mr⁢2⁢r⁢x−3⁢m,_DG⁡vector,M,,1,2⁢x5/2⁢2⁢r5/2⁢2⁢r⁢x−3⁢m−4⁢r3⁢x3+3⁢m⁢r2⁢x2−3⁢m2⁢r⁢x−m3r3/2⁢2⁢r⁢x−3⁢m⁢x⁢m,2,−mr⁢2⁢r⁢x−3⁢m⁢x,3,2⁢2⁢x⁢−2⁢r⁢x+x⁢2⁢r⁢x−3⁢mr⁢2⁢r⁢x−3⁢m
We can use the GRQuery command to verify that these are principal null directions.
GRQuery⁡PND21,g2,W2,PrincipalNullDirection
true
GRQuery⁡PND22,g2,W2,PrincipalNullDirection
GRQuery⁡PND23,g2,W2,PrincipalNullDirection
Example 3. Type III
We calculate the principal null directions for a type III spacetime. First define the coordinates to be used and then define the metric.
g3 ≔ evalDG⁡r2⁢dx &t dx+dy &t dyx3−2⁢du &s dr+3⁢x⁢du &t du2
_DG⁡tensor,M,cov_bas,cov_bas,,1,2,−1,2,1,−1,2,2,32⁢x,3,3,r2x3,4,4,r2x3,_DG⁡tensor,M,cov_bas,cov_bas,,1,2,−1,2,1,−1,2,2,32⁢x,3,3,r2x3,4,4,r2x3
Use the command DGGramSchmidt to form an orthonormal tetrad and the command NullTetrad to obtain a null tetrad for the metric g3.
OT3 ≔ DGGramSchmidt⁡D_r,D_u,D_x,D_y,g3,signature=−1,1,1,1assuming0<r,0<x
_DG⁡vector,M,,1,18⁢2⁢3⁢x+4,2,12⁢2,_DG⁡vector,M,,1,−18⁢2⁢3⁢x−4,2,−12⁢2,_DG⁡vector,M,,3,x3/2r,_DG⁡vector,M,,4,x3/2r,_DG⁡vector,M,,1,18⁢2⁢3⁢x+4,2,12⁢2,_DG⁡vector,M,,1,−18⁢2⁢3⁢x−4,2,−12⁢2,_DG⁡vector,M,,3,x3/2r,_DG⁡vector,M,,4,x3/2r
NT3 ≔ NullTetrad⁡OT31,OT34,OT33,OT32
_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,34⁢x,2,1,_DG⁡vector,M,,3,12⁢I⁢2⁢x3/2r,4,12⁢2⁢x3/2r,_DG⁡vector,M,,3,−12⁢I⁢2⁢x3/2r,4,12⁢2⁢x3/2r,_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,34⁢x,2,1,_DG⁡vector,M,,3,12⁢I⁢2⁢x3/2r,4,12⁢2⁢x3/2r,_DG⁡vector,M,,3,−12⁢I⁢2⁢x3/2r,4,12⁢2⁢x3/2r
Check that the metric is of Petrov type III.
PetrovType⁡NT3
III
For type III metrics, there are 2 principal null directions.
PND3a ≔ PrincipalNullDirections⁡NT3,III
_DG⁡vector,M,,1,329⁢r4x3,_DG⁡vector,M,,1,271024⁢x⁢8⁢x3+3⁢x3r4,2,932⁢x3r4,3,27256⁢x2⁢x3+x3r5,4,−27256⁢I⁢x2⁢x3−x3r5,_DG⁡vector,M,,1,329⁢r4x3,_DG⁡vector,M,,1,271024⁢x⁢8⁢x3+3⁢x3r4,2,932⁢x3r4,3,27256⁢x2⁢x3+x3r5,4,−27256⁢I⁢x2⁢x3−x3r5
PND3b ≔ simplify⁡PND3aassuming0<x
_DG⁡vector,M,,1,329⁢r4x3,_DG⁡vector,M,,1,2971024⁢x4r4,2,932⁢x3r4,3,27128⁢x5r5,4,0,_DG⁡vector,M,,1,329⁢r4x3,_DG⁡vector,M,,1,2971024⁢x4r4,2,932⁢x3r4,3,27128⁢x5r5,4,0
Of course, we can scale the principal null vectors:
PND3 ≔ evalDG⁡D_r,32⁢r4⁢PND3b23⁢x3
_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,9932⁢x,2,3,3,94⁢x2r,_DG⁡vector,M,,1,1,_DG⁡vector,M,,1,9932⁢x,2,3,3,94⁢x2r
We can use the GRQuery command to verify that these are principal null directions. For this the WeylTensor of the metric g3 is needed.
W3 ≔ WeylTensor⁡g3:
GRQuery⁡PND31,g3,W3,PrincipalNullDirection
GRQuery⁡PND32,g3,W3,PrincipalNullDirection
Example 4. Type D
We calculate the principal null directions for a type Dspacetime. First define the coordinates to be used and then define the metric.
g4 ≔ evalDG⁡dx &t dx+dy &t dy+1⁢ⅇ2⁢x⁢dz &t dz2−dt+ⅇx⁢dz &s dt+ⅇx⁢dz
_DG⁡tensor,M,cov_bas,cov_bas,,1,1,−1,1,4,−ⅇx,2,2,1,3,3,1,4,1,−ⅇx,4,4,−12⁢ⅇ2⁢x,_DG⁡tensor,M,cov_bas,cov_bas,,1,1,−1,1,4,−ⅇx,2,2,1,3,3,1,4,1,−ⅇx,4,4,−12⁢ⅇ2⁢x
Use the command DGGramSchmidt to form an orthonormal tetrad and the command NullTetrad to obtain a null tetrad for the metric g4.
OT4 ≔ DGGramSchmidt⁡D_t,D_x,D_y,D_z,g4,signature=−1,1,1,1
_DG⁡vector,M,,1,1,_DG⁡vector,M,,2,1,_DG⁡vector,M,,3,1,_DG⁡vector,M,,1,−2⁢ⅇxⅇ2⁢x,4,2ⅇ2⁢x,_DG⁡vector,M,,1,1,_DG⁡vector,M,,2,1,_DG⁡vector,M,,3,1,_DG⁡vector,M,,1,−2⁢ⅇxⅇ2⁢x,4,2ⅇ2⁢x
NT4 ≔ NullTetrad⁡OT4assuming0<x
_DG⁡vector,M,,1,−12⁢2⁢2−1,4,ⅇ−x,_DG⁡vector,M,,1,12⁢2⁢1+2,4,−ⅇ−x,_DG⁡vector,M,,2,12⁢2,3,12⁢I⁢2,_DG⁡vector,M,,2,12⁢2,3,−12⁢I⁢2,_DG⁡vector,M,,1,−12⁢2⁢2−1,4,ⅇ−x,_DG⁡vector,M,,1,12⁢2⁢1+2,4,−ⅇ−x,_DG⁡vector,M,,2,12⁢2,3,12⁢I⁢2,_DG⁡vector,M,,2,12⁢2,3,−12⁢I⁢2
Check that the metric is of Petrov type D.
PetrovType⁡NT4
D
For type D metrics, there are 2 principal null directions.
PND4 ≔ PrincipalNullDirections⁡NT4,D
_DG⁡vector,M,,1,2,3,−2,_DG⁡vector,M,,1,14⁢2,3,14⁢2,_DG⁡vector,M,,1,2,3,−2,_DG⁡vector,M,,1,14⁢2,3,14⁢2
We can use the GRQuery command to verify that these are principal null directions. For this the WeylTensor of the metric g4 is needed.
W4 ≔ WeylTensor⁡g4:
GRQuery⁡PND41,g4,W4,PrincipalNullDirection
GRQuery⁡PND42,g4,W4,PrincipalNullDirection
Example 5. Type N
We calculate the principal null directions for a type N spacetime. First define the coordinates to be used and then define the metric. The metric is taken from the book ExactSolutions, equation 12.34.
This metric and its adapted null tetrad are stored in the DifferentialGeometry database. See Library and Retrieve.
DGsetup⁡u,x,y,z,M
g5,NT5 ≔ op⁡Library:-Retrieve⁡Stephani,1,12,34,1,manifoldname=M,output=Fields,NullTetrad:
g5
_DG⁡tensor,M,cov_bas,cov_bas,,1,2,ⅇ−2⁢z,2,1,ⅇ−2⁢z,2,2,_ϵ⁢ⅇz,3,3,ⅇ−2⁢z,4,4,3_Λ,_DG⁡tensor,M,cov_bas,cov_bas,,1,2,ⅇ−2⁢z,2,1,ⅇ−2⁢z,2,2,_ϵ⁢ⅇz,3,3,ⅇ−2⁢z,4,4,3_Λ
NT5
_DG⁡vector,M,,1,2⁢ⅇz,_DG⁡vector,M,,1,14⁢ⅇ4⁢z⁢_ϵ+12⁢ⅇz,2,−12⁢ⅇz,4,16⁢2⁢3⁢−_Λ,_DG⁡vector,M,,1,ⅇz,3,12⁢I⁢2⁢ⅇz,4,16⁢2⁢3⁢−_Λ,_DG⁡vector,M,,1,ⅇz,3,−12⁢I⁢2⁢ⅇz,4,16⁢2⁢3⁢−_Λ,_DG⁡vector,M,,1,2⁢ⅇz,_DG⁡vector,M,,1,14⁢ⅇ4⁢z⁢_ϵ+12⁢ⅇz,2,−12⁢ⅇz,4,16⁢2⁢3⁢−_Λ,_DG⁡vector,M,,1,ⅇz,3,12⁢I⁢2⁢ⅇz,4,16⁢2⁢3⁢−_Λ,_DG⁡vector,M,,1,ⅇz,3,−12⁢I⁢2⁢ⅇz,4,16⁢2⁢3⁢−_Λ
Check that the metric is of Petrov type N.
PetrovType⁡NT5
N
For type N metrics, there is just 1 principal null direction.
PND5 ≔ PrincipalNullDirections⁡NT5,N
_DG⁡vector,M,,1,2⁢ⅇz,_DG⁡vector,M,,1,2⁢ⅇz
We can use the GRQuery command to verify that this is a principal null direction. For this the WeylTensor of the metric g5 is needed.
W5 ≔ WeylTensor⁡g5:
GRQuery⁡PND51,g5,W5,PrincipalNullDirection
See Also
DifferentialGeometry
Tensor
AdaptedSpinorDyad,
AdaptedNullTetrad
FactorWeylSpinor
NPCurvatureScalars
NullVector
PetrovType
WeylSpinor
Download Help Document