SegreType - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


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

Description

• 

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.

Examples

withDifferentialGeometry:withTensor:

 

For Examples 1 -- 4 we use the following metric.

DGsetupt,x,y,z,M

frame name: M

(2.1)
M > 

gevalDGt2x2dt&tdtdx&tdxdy&tdydz&tdz

gt2x2dtdtdxdxdydydzdz

(2.2)

 

Example 1.

Calculate the Segre type directly from the metric.

M > 

SegreTypeg

D,[(1,1)(11)]

(2.3)

 

Example 2.

Calculate the Segre type from a null tetrad for the metric g.  First use the command DGGramSchmidt to construct an orthonormal tetrad.

M > 

OTetradDGGramSchmidtD_t&comma;D_x&comma;D_y&comma;D_z&comma;g&comma;signature=1&comma;1&comma;1&comma;1assuming0<x,0<t

OTetradxtD_t&comma;D_x&comma;D_y&comma;D_z

(2.4)
M > 

NTetradNullTetradOTetrad

NTetrad2x2tD_t+22D_z&comma;2x2tD_t22D_z&comma;22D_x+I22D_y&comma;22D_xI22D_y

(2.5)
M > 

SegreTypeNTetrad

D,[(1,1)(11)]

(2.6)

 

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.

M > 

FDFrameDataNTetrad&comma;AF

FDE1&comma;E3=2E14x2E24x&comma;E1&comma;E4=2E14x2E24x&comma;E2&comma;E3=2E14x2E24x&comma;E2&comma;E4=2E14x2E24x

(2.7)
M > 

DGsetupFD

frame name: AF

(2.8)
AF > 

SegreTypeAF

D,[(1,1)(11)]

(2.9)

D&comma;[(1,1)(11)]

(2.10)

 

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.

NP > 

RSNPCurvatureScalarsNTetrad&comma;output=AllRicciScalars

RStablePhi12=0&comma;Phi11=0&comma;Phi10=0&comma;Phi00=12x2&comma;Phi02=12x2&comma;Phi01=0&comma;Lambda=16x2&comma;Phi22=12x2&comma;Phi21=0&comma;Phi20=12x2

(2.11)
M > 

SegreTypeRS

D,[(1,1)(11)]

(2.12)

 

Example 5.

We give a simple example where the Segre type changes at exceptional coordinate values.

M > 

DGsetupt&comma;x&comma;y&comma;z&comma;M

frame name: M

(2.13)
N > 

gevalDGdt&tdtdx&tdxdy&tdydz&tdz+y2dt&sdx

gdtdt+y2dtdx+y2dxdtdxdxdydydzdz

(2.14)

 

M > 

OTetradDGGramSchmidtD_t&comma;D_x&comma;D_y&comma;D_z&comma;g&comma;signature=1&comma;1&comma;1&comma;1assuming0<y

OTetradD_t&comma;y21+y4D_t+11+y4D_x&comma;D_y&comma;D_z

(2.15)
M > 

NTetradNullTetradOTetrad

NTetrad22D_t+22D_z&comma;22D_t22D_z&comma;2y221+y4D_t+221+y4D_x+I22D_y&comma;2y221+y4D_t+221+y4D_xI22D_y

(2.16)
M > 

NPNPCurvatureScalarsNTetrad&comma;output=AllRicciScalars

NPtablePhi12=1+y441+y432&comma;Phi11=y2y4341+y42&comma;Phi10=1+y441+y432&comma;Phi00=y221+y4&comma;Phi02=0&comma;Phi01=1+y441+y432&comma;Lambda=y25+y4121+y42&comma;Phi22=y221+y4&comma;Phi21=1+y441+y432&comma;Phi20=0

(2.17)

 

At generic coordinate values the Segre type is I&comma;[ZZ11] but is type O&comma;[(1,11)1] at y&equals;1 and type "D", ["ZZ(11)]" aty&equals; 0.

M > 

SegreTypeNPassuming1<y

I,[ZZ11]

(2.18)
M > 

SegreTypeNP&comma;t=t0&comma;x=x0&comma;y=1&comma;z=z0

O,[(1,11)1]

(2.19)
M > 

SegreTypeNP&comma;t=t0&comma;x=x0&comma;y=0&comma;z=z0

D,[ZZ(11)]

(2.20)

 

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.

M > 

DGsetupt&comma;x&comma;y&comma;z&comma;M

frame name: M

(2.21)
M > 

NTetradevalDG12yzD_t+12yzD_x+12212D_z&comma;12yzD_t+12yzD_x12212D_z&comma;12yzD_t12yzD_x+12I212D_y&comma;12yzD_t12yzD_x12I212D_y

NTetradz2yD_t+z2yD_x+22D_z&comma;z2yD_t+z2yD_x22D_z&comma;z2yD_tz2yD_x+I22D_y&comma;z2yD_tz2yD_xI22D_y

(2.22)
M > 

SegreTypeNTetrad

FAIL

(2.23)

 

To see why SegreType failed, set infolevel[SegreType] := 2.

M > 

infolevelSegreType2

infolevelSegreType2

(2.24)
M > 

SegreTypeNTetrad

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

FAIL

(2.25)

 

So we see that the invariant H vanishes when 3 y4&plus;2 y2z2z4&equals;0.  Find the z values for which H vanishes.

M > 

solve3y4+2y2z2z4&comma;z

3y,3y,Iy,−Iy

(2.26)
M > 

infolevelSegreType0

infolevelSegreType0

(2.27)

 

Re-calculate the Segre type at points where H&equals;0.

M > 

SegreTypeNTetrad&comma;x=a&comma;y=b&comma;z=sqrt3b&comma;t=cassumingb::real

O,[(1,11)1]

(2.28)

 

Re-calculate the Segre type at some choice of points where H0.

M > 

SegreTypeNTetrad&comma;x=a&comma;y=b&comma;z=b&comma;t=dassuming0<b

D,[(1,1)11]

(2.29)

 

Example 6.

With the third calling sequence we can verify algebraic normal forms for the Ricci tensors of each Segre type.

M > 

gevalDGdt&tdtdx&tdxdy&tdydz&tdz

gdtdtdxdxdydydzdz

(2.30)

NTetradevalDG12212D_t+12212D_z&comma;12212D_t12212D_z&comma;12212D_x+12I212D_y&comma;12212D_x12I212D_y

NTetrad22D_t+22D_z&comma;22D_t22D_z&comma;22D_x+I22D_y&comma;22D_xI22D_y

(2.31)

 

1. Petrov-Plebanski type: "O", Segre Type: "[(1,111)]"

RevalDGadt&tdtadx&tdxady&tdyadz&tdz

Radtdtadxdxadydyadzdz

(2.32)

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

O,[(1,111)]

(2.33)

 

2. Petrov-Plebanski type: "O", Segre Type: "[1,(111)]"

M > 

RevalDGadt&tdtbdx&tdxbdy&tdybdz&tdz

Radtdtbdxdxbdydybdzdz

(2.34)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

O,[1,(111)]

(2.35)

 

3. Petrov-Plebanski type: "O", Segre Type: "[(1,11)1]"

M > 

RevalDGadt&tdtadx&tdxady&tdybdz&tdz

Radtdtadxdxadydybdzdz

(2.36)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

O,[(1,11)1]

(2.37)

 

4. Petrov-Plebanski type: "O", Segre Type: "[2,(11)]"

M > 

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);

Ra+1dtdt+dtdx+dxdta1dxdxadydyadzdz

(2.38)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

O,[(2,11)]

(2.39)

 

5. Petrov-Plebanski type: "N", Segre Type: "[(2,1)1]"

M > 

RevalDGa+1dt&tdt+dt&tdx+dx&tdt+a+1dx&tdxady&tdybdz&tdz

Ra+1dtdt+dtdx+dxdta1dxdxadydybdzdz

(2.40)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

N,[(2,1)1]

(2.41)

 

6. Petrov-Plebanski type: "N", Segre Type: "[(3,1)]"

M > 

RevalDGadt&tdt+dt&tdyadx&tdxdx&tdy+dy&tdtdy&tdxady&tdyadz&tdz

Radtdt+dtdyadxdxdxdy+dydtdydxadydyadzdz

(2.42)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

N,[(3,1)]

(2.43)

 

7. Petrov-Plebanski type: "D", Segre Type: "[(1,1)11]"

M > 

RevalDGadt&tdtadx&tdxbdy&tdy

Radtdtadxdxbdydy

(2.44)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuming0<a,a<b

D,[(1,1)11]

(2.45)

 

8.  Petrov-Plebanski type: "D", Segre Type: "[1,1(11)]"

M > 

RevalDGadt&tdtbdx&tdx

Radtdtbdxdx

(2.46)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuming0<a,a<b

D,[1,1(11)]

(2.47)

 

9. Petrov-Plebanski type: "D", Segre Type: "[ZZ(11)]"

M > 

RevalDGadt&tdt+bdt&tdx+bdx&tdtadx&tdxcdy&tdycdz&tdz

Radtdt+bdtdx+bdxdtadxdxcdydycdzdz

(2.48)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuming0<a,0<b,a<c

D,[ZZ(11)]

(2.49)

 

10. Petrov-Plebanski type: "D", Segre Type: "[(1,1)(11)]"

M > 

RevalDGadt&tdtadx&tdxbdy&tdy

Radtdtadxdxbdydy

(2.50)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuming0<a,a<b

D,[(1,1)11]

(2.51)

 

11. Petrov-Plebanski type: "D", Segre Type: "[2,(11)]"

M > 

RevalDGa+1dt&tdt+dt&tdx+dx&tdt+a+1dx&tdxbdy&tdybdz&tdz

Ra+1dtdt+dtdx+dxdta1dxdxbdydybdzdz

(2.52)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b

D,[2,(11)]

(2.53)

 

12. Petrov-Plebanski type: "II", Segre Type: "[2,(11)]"

M > 

RevalDGa+1dt&tdt+dt&tdx+dx&tdt+a+1dx&tdxbdy&tdycdz&tdz

Ra+1dtdt+dtdx+dxdta1dxdxbdydycdzdz

(2.54)
M > 

SegreTypeNTetrad&comma;g&comma;R

II,[2,11]

(2.55)

 

13. Petrov-Plebanski type: "I", Segre Type: "[1,111]"

M > 

RevalDGadt&tdtbdx&tdxcdy&tdyddz&tdz

Radtdtbdxdxcdydyddzdz

(2.56)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b,b<c,c<d,0<a

I,[1,111]

(2.57)

 

14. Petrov-Plebanski type: "I", Segre Type: "[ZZ11]"

M > 

RevalDGadt&tdt+bdt&tdx+bdx&tdtadx&tdxbdy&tdy+b+2adz&tdz

Radtdt+bdtdx+bdxdtadxdxbdydy+b+2adzdz

(2.58)
M > 

SegreTypeNTetrad&comma;g&comma;Rassuminga<b,0<a

I,[ZZ11]

(2.59)

 

See Also

DifferentialGeometry, Tensor, assuming, infolevel, FrameData, NullTetrad, NPCurvatureScalars, PetrovType, Physics:-PetrovType, Physics:-SegreType