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

Online Help

All Products    Maple    MapleSim


Tensor[CongruenceProperties] - calculate properties of a congruence of curves

Calling Sequences

     CongruenceProperties(g, U)

     CongruenceProperties(g, K, L)

     CongruenceProperties(g, K)

     CongruenceProperties(g, NT)

 

Parameters

     g     - a metric tensor

     U     - a unit vector

     K,L   - normalized null vectors, the vector K defines an affinely parameterized, geodesic null congruence. 

     NT    - a list of 4 vectors, defining a null tetrad, the first vector in the tetrad defines the geodesic null congruence.

 

 

Description

Examples

Description

• 

The command CongruenceProperties returns a table of properties associated to a line congruence defined by a unit (time-like or space-like) vector field U or a null vector field K.

• 

Let ϵ = gU, U = ±1, sethab = gabϵ UaUb . The following scalar and tensor fields are calculated by the first calling sequence.

 - Acceleration: Aa= Ubb Ua .

 - Expansion: Θ = aUa .

 - Rotation Tensor : ωab= 1/2 (b Ua a Ub  ϵAaUb + ϵAbUa) .

 - Shear Tensor: σab= 1/2 (b Ua +a Ub  ϵAaUb  ϵAbUa 1n1 Θ hab) .

• 

The left-hand side of the Raychaudhuri equation UaaΘ + Rab UaUb ωabωab + σabσab +N Θ2 = 0, valid when the congruence is geodesic (Aa=0), where Rab is the Ricci tensor and N = 1/n1, is also calculated.

• 

The first calling sequence returns a table with indices "Acceleration", "Expansion", "RotationTensor", "ShearTensor", "Raychaudhuri".

• 

The remaining three calling sequences apply only to an affinely parameterized, geodesic null congruence , that is, Ka Ka =0 and KbbKa = 0.

• 

The second calling sequence requires gK, K=0=gL, L,gK, L = α,where α = ±1. Sethab = gabα KaLb + Kb La and vab = hac hbd c Kd. Define

 - Expansion: Θ = aKa .

 - Rotation Tensor: ωab=12vab  vba.

 - Rotation Scalar: ω = α2εabcd LaKb c Kd .

 - Complex expansion: ρ =  12Θ+ I ω.

 - Shear Tensor: σab=12vab + vba 1/n2hab Θ.

The Raychaudhuri equation is as above but using these definitions of ω and σ and with N = 1/n2. 

• 

The second calling sequence returns a table with 8 indices "Expansion", "RotationNormSquared" "ShearNormSquared", "RotationTensor", "RotationScalar", "ShearTensor" , "ComplexExpansion" and "Raychaudhuri".

• 

The third calling sequence calculates: Expansion: Θ = aKa; Rotation norm squared = ωab ωab ; and Shear norm squared = σabσab . The definitions are as in the second calling sequence but, as these scalars do not in fact depend upon the choice of L, only the vector K is needed as input. The third calling sequence returns a table with indices "Expansion", "RotationNormSquared", "ShearNormSquared" and "Raychaudhuri".

• 

Finally, from the 4th calling sequence we set K = NT1, L =NT2, M = NT3 and M  = NT4 and calculate, in addition to the 8 quantities calculated for the second calling sequence , σ =  MaMb a Kb , referenced by the index sigma. In this case, the quantities ρ and σ are Newman-Penrose Spin Coefficients.

Examples

 

withDifferentialGeometry:withTensor:

 

Example 1.

For our first example we use the standard metric on the sphere.

DGsetupθ,φ,M

frame name: M

(2.1)

gevalDGR2dtheta &t dtheta+sinθ2dphi &t dphi

_DGtensor,M,cov_bas,cov_bas,,1,1,R2,2,2,R2sinθ2,_DGtensor,M,cov_bas,cov_bas,,1,1,R2,2,2,R2sinθ2

(2.2)

 

Define a unit vector field U.

M > 

UevalDG1D_phiRsinθ

_DGvector,M,,2,1Rsinθ,_DGvector,M,,2,1Rsinθ

(2.3)

 

We see that the congruence is geodesic on the equator ( θ = π/2) but is accelerating elsewhere. It is shearing, rotating and non-expanding.

M > 

CongruencePropertiesg,U

table( [( "Raychaudhuri" ) = `/`(1, `*`(`^`(R, 2))), ( "Acceleration" ) = _DG([["tensor", M, [["con_bas"], []]], [[[1], `+`(`-`(`/`(`*`(cos(theta)), `*`(`^`(R, 2), `*`(sin(theta))))))]]]), ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "Expansion" ) = 0, ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] ),table( [( "Raychaudhuri" ) = `/`(1, `*`(`^`(R, 2))), ( "Acceleration" ) = _DG([["tensor", M, [["con_bas"], []]], [[[1], `+`(`-`(`/`(`*`(cos(theta)), `*`(`^`(R, 2), `*`(sin(theta))))))]]]), ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "Expansion" ) = 0, ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] )

(2.4)

 

Example 2.

For the next example we consider a class of Robinson-Trautman metrics. These are of Petrov type II and admit a null congruence which is shear-free.

M > 

DGsetupu,r,zeta,zetab,RT

frame name: RT

(2.5)
RT > 

gevalDG2r2Pzeta,zetab,u2dzeta &s dzetab2du &s dr2Hzeta,zetab,r,udu &t du

_DGtensor,RT,cov_bas,cov_bas,,1,1,2Hζ,zetab,r,u,1,2,1,2,1,1,3,4,r2Pζ,zetab,u2,4,3,r2Pζ,zetab,u2,_DGtensor,RT,cov_bas,cov_bas,,1,1,2Hζ,zetab,r,u,1,2,1,2,1,1,3,4,r2Pζ,zetab,u2,4,3,r2Pζ,zetab,u2

(2.6)

 

Here is a null tetrad for this metric.

RT > 

NTevalDGD_r,D_uHzeta,zetab,r,uD_r,Pzeta,zetab,uD_zetar,Pzeta,zetab,uD_zetabr

_DGvector,RT,,2,1,_DGvector,RT,,1,1,2,Hζ,zetab,r,u,_DGvector,RT,,3,Pζ,zetab,ur,_DGvector,RT,,4,Pζ,zetab,ur,_DGvector,RT,,2,1,_DGvector,RT,,1,1,2,Hζ,zetab,r,u,_DGvector,RT,,3,Pζ,zetab,ur,_DGvector,RT,,4,Pζ,zetab,ur

(2.7)

 

The null congruence is very simple:

RT > 

UNT1

_DGvector,RT,,2,1

(2.8)

 

First calling sequence:

RT > 

CongruencePropertiesg,D_r

table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))) ] ),table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))) ] )

(2.9)

 

Third calling sequence:

RT > 

CongruencePropertiesg,NT1,NT2

table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))), ( "RotationTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] ),table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))), ( "RotationTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] )

(2.10)

 

Fourth calling sequence

RT > 

CongruencePropertiesg,NT

table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "sigma" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "rho" ) = `+`(`-`(`/`(1, `*`(r)))), ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))), ( "RotationTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] ),table( [( "ShearNormSquared" ) = 0, ( "RotationNormSquared" ) = 0, ( "sigma" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]), ( "rho" ) = `+`(`-`(`/`(1, `*`(r)))), ( "Expansion" ) = `+`(`/`(`*`(2), `*`(r))), ( "RotationTensor" ) = _DG([["tensor", RT, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] )

(2.11)

 

Example 3.

Here is an example of a Newman-Tamburino metric of Petrov type I and which admits a null geodesic congruence with non-vanishing shear.

RT > 

DGsetupu,r,x,y,M

frame name: M

(2.12)
M > 

gevalDGr2dx &t dx+x2dy &t dy2rdu &s dxx2du &s dr+1c+lnr2x4du &t dux2

_DGtensor,M,cov_bas,cov_bas,,1,1,c+lnr2x4x2,1,2,1,1,3,rx,2,1,1,3,1,rx,3,3,r2,4,4,x2,_DGtensor,M,cov_bas,cov_bas,,1,1,c+lnr2x4x2,1,2,1,1,3,rx,2,1,1,3,1,rx,3,3,r2,4,4,x2

(2.13)

 

Here is a null tetrad for this metric.

M > 

NTD_r,D_u+c+lnr2x4D_r2x2,2D_rx+2D_x2r+I122D_yx,2D_rx+2D_x2rI122D_yx

_DGvector,M,,2,1,_DGvector,M,,1,1+12c+lnr2x4_DGvector,M,,2,1x2,2_DGvector,M,,2,1x+122_DGvector,M,,3,1r+12I2_DGvector,M,,4,1x,2_DGvector,M,,2,1x+122_DGvector,M,,3,1r12I2_DGvector,M,,4,1x,_DGvector,M,,2,1,_DGvector,M,,1,1+12c+lnr2x4_DGvector,M,,2,1x2,2_DGvector,M,,2,1x+122_DGvector,M,,3,1r+12I2_DGvector,M,,4,1x,2_DGvector,M,,2,1x+122_DGvector,M,,3,1r12I2_DGvector,M,,4,1x

(2.14)

 

Again we consider the first leg of this tetrad.

M > 

UD_r

_DGvector,M,,2,1

(2.15)

 

First calling sequence:

RT > 

CongruencePropertiesg,U

table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "Expansion" ) = `/`(1, `*`(r)) ] ),table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "Expansion" ) = `/`(1, `*`(r)) ] )

(2.16)

 

Third calling sequence:

RT > 

CongruencePropertiesg,NT1,NT2

table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[3, 3], `+`(`*`(`/`(1, 2), `*`(r)))], [[4, 4], `+`(`-`(`/`(`*`(`/`(1, 2), `*`(`^`(x, 2))), `*`(r))))]]]), ( "Expansion" ) = `/`(1, `*`(r)), ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] ),table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[3, 3], `+`(`*`(`/`(1, 2), `*`(r)))], [[4, 4], `+`(`-`(`/`(`*`(`/`(1, 2), `*`(`^`(x, 2))), `*`(r))))]]]), ( "Expansion" ) = `/`(1, `*`(r)), ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] )

(2.17)

 

Fourth calling sequence:

RT > 

CongruencePropertiesg,NT

table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "sigma" ) = `+`(`-`(`/`(`*`(`/`(1, 2)), `*`(r)))), ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[3, 3], `+`(`*`(`/`(1, 2), `*`(r)))], [[4, 4], `+`(`-`(`/`(`*`(`/`(1, 2), `*`(`^`(x, 2))), `*`(r))))]]]), ( "rho" ) = `+`(`-`(`/`(`*`(`/`(1, 2)), `*`(r)))), ( "Expansion" ) = `/`(1, `*`(r)), ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] ),table( [( "ShearNormSquared" ) = `+`(`/`(`*`(`/`(1, 2)), `*`(`^`(r, 2)))), ( "RotationNormSquared" ) = 0, ( "sigma" ) = `+`(`-`(`/`(`*`(`/`(1, 2)), `*`(r)))), ( "Raychaudhuri" ) = 0, ( "RotationScalar" ) = 0, ( "ShearTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[3, 3], `+`(`*`(`/`(1, 2), `*`(r)))], [[4, 4], `+`(`-`(`/`(`*`(`/`(1, 2), `*`(`^`(x, 2))), `*`(r))))]]]), ( "rho" ) = `+`(`-`(`/`(`*`(`/`(1, 2)), `*`(r)))), ( "Expansion" ) = `/`(1, `*`(r)), ( "RotationTensor" ) = _DG([["tensor", M, [["cov_bas", "cov_bas"], []]], [[[1, 1], 0]]]) ] )

(2.18)
M > 

 

See Also

DifferentialGeometry

Tensor

AdaptedSpinorDyad

AdaptedNullTetrad

NPCurvatureScalars

NullVector

PetrovType

PrincipalNullDirections