Tensor[SegreType] - determine the Segre type of the trace-free Ricci tensor
Calling Sequences
SegreType(g, pt)
SegreType(NTetrad, pt)
SegreType(NTetrad, g, R , pt)
SegreType(NPRicci, pt)
SegreType(Fr, pt)
Parameters
g - a metric tensor g of signature 1,−1,−1,−1 on a manifold M
Fr - the name of initialized anholonomic frame, created from a null tetrad
NTetrad - a list of 4 vectors defining a null tetrad
R - a rank 2, symmetric tensor
NPRicci - a table, the Newman-Penrose Ricci scalars
pt - (option) a list of equations specifying the coordinates of a point on M
Description
Examples
See Also
The Segre classification of the Ricci tensor of the metric g is an algebraic classification based upon the eigenvalues-eigenvectors for the trace-free Ricci tensor. These types are designated as [(1,1)(11)], [(1,1)11], [(1,11)1], [(1,111)], [(2,1)1], [(2,11)], [(3,1)], [1,(111)], [1,1(11)], [1,111], [2,(11)], [2,11], [3,1], [ZZ(11)], [ZZ11]. See Stephani, Kramer, et al for details.
Closely related to the Segre classification is the Plebanski-Petrov classification of the trace-free Ricci tensor. Here the trace-free Ricci tensor is used to construct the Plebanski tensor, a rank 4 tensor with the same algebraic symmetries as the Weyl tensor. Accordingly, the Plebanski tensor may be assigned one of the following types "O", "N", "D", "I", "II", "III" -- these are called the Plebanski-Petrov types of the trace-free Ricci tensor. See Stephani, Kramer, et al for details.
The command SegreType returns a sequence PP, S, where PP is the Plebanski-Petrov classification and S is the Segre classification.
See Details for SegreType for a complete description of the algorithm used.
Because the algorithm is based upon the calculation of the Newman-Penrose Ricci scalars, it is best to use one of the last 4 calling sequences. Note that the Ricci scalars can often be simplified through the application of an appropriate null tetrad transformation. The first calling sequence SegreType(g, pt) will automatically generate a null tetrad (if possible) but the result may not be optimal for calculating all the invariants needed to determine the Plebanski-Petrov and the Segre types.
The Segre type of an arbitrary rank 2 symmetric tensor R can be calculated using the third calling sequence. From the tensor R, a trace-free tensor S is calculated using the metric g. The Newman-Penrose coefficients of S are determined and these are subsequently used to calculate the Segre type.
It is possible that the algebraic classification can vary from point to point on the manifold M. The command SegreType returns, if possible, the algebraic classification at a generic point. If the command fails, try the classification at a specific point with the optional argument pt. Constraints on the coordinate values can be imposed with assuming.
The branching performed by the program SegreType can be tracked by setting infolevel[SegreType] = 2.
This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form SegreType(...) only after executing the commands with(DifferentialGeometry); with(Tensor); in that order. It can always be used in the long form DifferentialGeometry:-Tensor:-SegreType.
with⁡DifferentialGeometry:with⁡Tensor:
For Examples 1 -- 4 we use the following metric.
DGsetup⁡t,x,y,z,M
frame name: M
g≔evalDG⁡t2x2⁢dt&tdt−dx&tdx−dy&tdy−dz&tdz
g≔t2x2⁢dt⁢dt−dx⁢dx−dy⁢dy−dz⁢dz
Example 1.
Calculate the Segre type directly from the metric.
SegreType⁡g
D,[(1,1)(11)]
Example 2.
Calculate the Segre type from a null tetrad for the metric g. First use the command DGGramSchmidt to construct an orthonormal tetrad.
OTetrad≔DGGramSchmidt⁡D_t,D_x,D_y,D_z,g,signature=1,−1,−1,−1assuming0<x,0<t
OTetrad≔xt⁢D_t,D_x,D_y,D_z
NTetrad≔NullTetrad⁡OTetrad
NTetrad≔2⁢x2⁢t⁢D_t+22⁢D_z,2⁢x2⁢t⁢D_t−22⁢D_z,22⁢D_x+I2⁢2⁢D_y,22⁢D_x−I2⁢2⁢D_y
SegreType⁡NTetrad
Example 3.
If one intends to do a number of computations with the metric g, it is usually computationally advantageous to work explicitly with an orthonormal frame or a null tetrad frame. See FrameData.
FD≔FrameData⁡NTetrad,AF
FD≔E1,E3=−2⁢E14⁢x−2⁢E24⁢x,E1,E4=−2⁢E14⁢x−2⁢E24⁢x,E2,E3=−2⁢E14⁢x−2⁢E24⁢x,E2,E4=−2⁢E14⁢x−2⁢E24⁢x
DGsetup⁡FD
frame name: AF
SegreType⁡AF
Example 4.
Here we determine the Segre type from the Newman-Penrose Ricci scalars (we continue with the null tetrad frame from the previous example). First calculate the Newman-Penrose Ricci scalars. This is always the best way to proceed since one can simplify, if need be, the Ricci scalars, before proceeding to calculate the more complicated invariants needed by the algorithm to determine the Segre type.
RS≔NPCurvatureScalars⁡NTetrad,output=AllRicciScalars
RS≔table⁡Phi12=0,Phi11=0,Phi10=0,Phi00=12⁢x2,Phi02=−12⁢x2,Phi01=0,Lambda=−16⁢x2,Phi22=12⁢x2,Phi21=0,Phi20=−12⁢x2
SegreType⁡RS
Example 5.
We give a simple example where the Segre type changes at exceptional coordinate values.
g≔evalDG⁡dt&tdt−dx&tdx−dy&tdy−dz&tdz+y2⁢dt&sdx
g≔dt⁢dt+y2⁢dt⁢dx+y2⁢dx⁢dt−dx⁢dx−dy⁢dy−dz⁢dz
OTetrad≔DGGramSchmidt⁡D_t,D_x,D_y,D_z,g,signature=1,−1,−1,−1assuming0<y
OTetrad≔D_t,−y21+y4⁢D_t+11+y4⁢D_x,D_y,D_z
NTetrad≔22⁢D_t+22⁢D_z,22⁢D_t−22⁢D_z,−2⁢y22⁢1+y4⁢D_t+22⁢1+y4⁢D_x+I2⁢2⁢D_y,−2⁢y22⁢1+y4⁢D_t+22⁢1+y4⁢D_x−I2⁢2⁢D_y
NP≔NPCurvatureScalars⁡NTetrad,output=AllRicciScalars
NP≔table⁡Phi12=−−1+y44⁢1+y432,Phi11=y2⁢y4−34⁢1+y42,Phi10=−−1+y44⁢1+y432,Phi00=y22⁢1+y4,Phi02=0,Phi01=−−1+y44⁢1+y432,Lambda=−y2⁢5+y412⁢1+y42,Phi22=y22⁢1+y4,Phi21=−−1+y44⁢1+y432,Phi20=0
At generic coordinate values the Segre type is I,[ZZ11] but is type O,[(1,11)1] at y=1 and type "D", ["ZZ(11)]" aty= 0.
SegreType⁡NPassuming1<y
I,[ZZ11]
SegreType⁡NP,t=t0,x=x0,y=1,z=z0
O,[(1,11)1]
SegreType⁡NP,t=t0,x=x0,y=0,z=z0
D,[ZZ(11)]
Example 6.
The branching that occurs in the algorithm for SegreType can be followed by setting infolevel[SegreType] := 2. In this example the spacetime metric is defined implicitly through the choice of the null tetrad.
NTetrad≔evalDG⁡12⁢y⁢z⁢D_t+12⁢y⁢z⁢D_x+12⁢212⁢D_z,12⁢y⁢z⁢D_t+12⁢y⁢z⁢D_x−12⁢212⁢D_z,12⁢y⁢z⁢D_t−12⁢y⁢z⁢D_x+12⁢I⁢212⁢D_y,12⁢y⁢z⁢D_t−12⁢y⁢z⁢D_x−12⁢I⁢212⁢D_y
NTetrad≔z2⁢y⁢D_t+z2⁢y⁢D_x+22⁢D_z,z2⁢y⁢D_t+z2⁢y⁢D_x−22⁢D_z,z2⁢y⁢D_t−z2⁢y⁢D_x+I2⁢2⁢D_y,z2⁢y⁢D_t−z2⁢y⁢D_x−I2⁢2⁢D_y
FAIL
To see why SegreType failed, set infolevel[SegreType] := 2.
infolevelSegreType≔2
The NP Ricci coefficients are:
Phi00: -1/4*(y^2-z^2)/z^2/y^2 Phi01: 1/2*I/z/y Phi02: -1/4*(3*y^2+z^2)/z^2/y^2 Phi10: -1/2*I/z/y Phi11: 1/2/z^2 Phi12: -1/2*I/z/y Phi20: -1/4*(3*y^2+z^2)/z^2/y^2 Phi21: 1/2*I/z/y Phi22: -1/4*(y^2-z^2)/z^2/y^2 The NP coefficients of the Chi spinor are: Chi0: 1/8*(3*y^4+2*z^2*y^2-z^4)/z^4/y^4 Chi1: 0 Chi2: -1/24*(3*y^4+2*z^2*y^2-z^4)/z^4/y^4 Chi3: 0 Chi4: 1/8*(3*y^4+2*z^2*y^2-z^4)/z^4/y^4 The Petrov-Plebanski type of the given symmetric tensor is "D" The NP coefficients of the E spinor are: E00: -1/2*(y^2+z^2)/z^4/y^2 E01: -1/2*I*(y^2+z^2)/z^3/y^3 E02: 3/4*(y^2+z^2)/z^4/y^2 E11: -1/2*(y^2+z^2)/z^4/y^2 E12: 1/2*I*(y^2+z^2)/z^3/y^3 E22: -1/2*(y^2+z^2)/z^4/y^2 The r1 invariant is: 1/12*(9*y^4+10*z^2*y^2+z^4)/z^4/y^4 If r1 = 0, then the Segre invariant is [ZZ(11)] If r1 <> 0, and the E spinor is 0, then the Segre invariant is [(1,1)(11)] The tildeChi0 invariant is: -1/4*(y^2+z^2)^2*(3*y^2-2*z^2)/z^8/y^6 If r1 <> 0, if Chi0 <> 0 and if tildeChi0 = 0, then the Segre invariant is [2,(11)] The Ip invariant is: 1/144*(3*y^4+2*z^2*y^2-z^4)^2/z^8/y^8 The Jp invariant is: -1/1728*(3*y^4+2*z^2*y^2-z^4)^3/z^12/y^12 The H invariant is: 1/144*(3*y^4+2*z^2*y^2-z^4)^2/y^10*(y^2+z^2)/z^12 If H = 0, then the Segre invariant is [2,(11)] If H < 0, then the Segre invariant is [ZZ,(11)] Unable to evaluate the sign of H
So we see that the invariant H vanishes when 3 y4+2 y2z2−z4=0. Find the z values for which H vanishes.
solve⁡3⁢y4+2⁢y2⁢z2−z4,z
3⁢y,−3⁢y,I⁢y,−I⁢y
infolevelSegreType≔0
Re-calculate the Segre type at points where H=0.
SegreType⁡NTetrad,x=a,y=b,z=sqrt⁡3⁢b,t=cassumingb::real
Re-calculate the Segre type at some choice of points where H≠0.
SegreType⁡NTetrad,x=a,y=b,z=b,t=dassuming0<b
D,[(1,1)11]
With the third calling sequence we can verify algebraic normal forms for the Ricci tensors of each Segre type.
g≔evalDG⁡dt&tdt−dx&tdx−dy&tdy−dz&tdz
g≔dt⁢dt−dx⁢dx−dy⁢dy−dz⁢dz
NTetrad≔evalDG⁡12⁢212⁢D_t+12⁢212⁢D_z,12⁢212⁢D_t−12⁢212⁢D_z,12⁢212⁢D_x+12⁢I⁢212⁢D_y,12⁢212⁢D_x−12⁢I⁢212⁢D_y
NTetrad≔22⁢D_t+22⁢D_z,22⁢D_t−22⁢D_z,22⁢D_x+I2⁢2⁢D_y,22⁢D_x−I2⁢2⁢D_y
1. Petrov-Plebanski type: "O", Segre Type: "[(1,111)]"
R≔evalDG⁡a⁢dt&tdt−a⁢dx&tdx−a⁢dy&tdy−a⁢dz&tdz
R≔a⁢dt⁢dt−a⁢dx⁢dx−a⁢dy⁢dy−a⁢dz⁢dz
SegreType⁡NTetrad,g,Rassuminga<b
O,[(1,111)]
2. Petrov-Plebanski type: "O", Segre Type: "[1,(111)]"
R≔evalDG⁡a⁢dt&tdt−b⁢dx&tdx−b⁢dy&tdy−b⁢dz&tdz
R≔a⁢dt⁢dt−b⁢dx⁢dx−b⁢dy⁢dy−b⁢dz⁢dz
O,[1,(111)]
3. Petrov-Plebanski type: "O", Segre Type: "[(1,11)1]"
R≔evalDG⁡a⁢dt&tdt−a⁢dx&tdx−a⁢dy&tdy−b⁢dz&tdz
R≔a⁢dt⁢dt−a⁢dx⁢dx−a⁢dy⁢dy−b⁢dz⁢dz
4. Petrov-Plebanski type: "O", Segre Type: "[2,(11)]"
R := evalDG((a + 1)*dt &t dt + dt &t dx + dx &t dt + (-a + 1)*dx &t dx - a*dy &t dy - a*dz &t dz);
R≔a+1⁢dt⁢dt+dt⁢dx+dx⁢dt−a−1⁢dx⁢dx−a⁢dy⁢dy−a⁢dz⁢dz
O,[(2,11)]
5. Petrov-Plebanski type: "N", Segre Type: "[(2,1)1]"
R≔evalDG⁡a+1⁢dt&tdt+dt&tdx+dx&tdt+−a+1⁢dx&tdx−a⁢dy&tdy−b⁢dz&tdz
R≔a+1⁢dt⁢dt+dt⁢dx+dx⁢dt−a−1⁢dx⁢dx−a⁢dy⁢dy−b⁢dz⁢dz
N,[(2,1)1]
6. Petrov-Plebanski type: "N", Segre Type: "[(3,1)]"
R≔evalDG⁡a⁢dt&tdt+dt&tdy−a⁢dx&tdx−dx&tdy+dy&tdt−dy&tdx−a⁢dy&tdy−a⁢dz&tdz
R≔a⁢dt⁢dt+dt⁢dy−a⁢dx⁢dx−dx⁢dy+dy⁢dt−dy⁢dx−a⁢dy⁢dy−a⁢dz⁢dz
N,[(3,1)]
7. Petrov-Plebanski type: "D", Segre Type: "[(1,1)11]"
R≔evalDG⁡a⁢dt&tdt−a⁢dx&tdx−b⁢dy&tdy
R≔a⁢dt⁢dt−a⁢dx⁢dx−b⁢dy⁢dy
SegreType⁡NTetrad,g,Rassuming0<a,a<b
8. Petrov-Plebanski type: "D", Segre Type: "[1,1(11)]"
R≔evalDG⁡a⁢dt&tdt−b⁢dx&tdx
R≔a⁢dt⁢dt−b⁢dx⁢dx
D,[1,1(11)]
9. Petrov-Plebanski type: "D", Segre Type: "[ZZ(11)]"
R≔evalDG⁡a⁢dt&tdt+b⁢dt&tdx+b⁢dx&tdt−a⁢dx&tdx−c⁢dy&tdy−c⁢dz&tdz
R≔a⁢dt⁢dt+b⁢dt⁢dx+b⁢dx⁢dt−a⁢dx⁢dx−c⁢dy⁢dy−c⁢dz⁢dz
SegreType⁡NTetrad,g,Rassuming0<a,0<b,a<c
10. Petrov-Plebanski type: "D", Segre Type: "[(1,1)(11)]"
11. Petrov-Plebanski type: "D", Segre Type: "[2,(11)]"
R≔evalDG⁡a+1⁢dt&tdt+dt&tdx+dx&tdt+−a+1⁢dx&tdx−b⁢dy&tdy−b⁢dz&tdz
R≔a+1⁢dt⁢dt+dt⁢dx+dx⁢dt−a−1⁢dx⁢dx−b⁢dy⁢dy−b⁢dz⁢dz
D,[2,(11)]
12. Petrov-Plebanski type: "II", Segre Type: "[2,(11)]"
R≔evalDG⁡a+1⁢dt&tdt+dt&tdx+dx&tdt+−a+1⁢dx&tdx−b⁢dy&tdy−c⁢dz&tdz
R≔a+1⁢dt⁢dt+dt⁢dx+dx⁢dt−a−1⁢dx⁢dx−b⁢dy⁢dy−c⁢dz⁢dz
SegreType⁡NTetrad,g,R
II,[2,11]
13. Petrov-Plebanski type: "I", Segre Type: "[1,111]"
R≔evalDG⁡a⁢dt&tdt−b⁢dx&tdx−c⁢dy&tdy−d⁢dz&tdz
R≔a⁢dt⁢dt−b⁢dx⁢dx−c⁢dy⁢dy−d⁢dz⁢dz
SegreType⁡NTetrad,g,Rassuminga<b,b<c,c<d,0<a
I,[1,111]
14. Petrov-Plebanski type: "I", Segre Type: "[ZZ11]"
R≔evalDG⁡a⁢dt&tdt+b⁢dt&tdx+b⁢dx&tdt−a⁢dx&tdx−b⁢dy&tdy+b+2⁢a⁢dz&tdz
R≔a⁢dt⁢dt+b⁢dt⁢dx+b⁢dx⁢dt−a⁢dx⁢dx−b⁢dy⁢dy+b+2⁢a⁢dz⁢dz
SegreType⁡NTetrad,g,Rassuminga<b,0<a
DifferentialGeometry, Tensor, assuming, infolevel, FrameData, NullTetrad, NPCurvatureScalars, PetrovType, Physics:-PetrovType, Physics:-SegreType
Download Help Document