DifferentialGeometry/Tensor/SectionalCurvature - Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : DifferentialGeometry/Tensor/SectionalCurvature

Tensor[SectionalCurvature] - calculate the sectional curvature for a metric 

Calling Sequences

     SectionalCurvature(g, R, X, Y)


   g    - a metric tensor on the tangent bundle of a manifold

   R    - the curvature tensor of the metric g,calculated from the Christoffel symbol of g

   X, Y - a pair of vectors





See Also



Let M be an n-dimensional manifold with metric g. The sectional curvature of the metric g at a point pM is the Gaussian curvature K (at p) of the geodesic surface whose tangent space at p is spanned by vectors X and Y. If R is the covariant form of the curvature tensor (that is, R is a tensor of type 04), then

K=RX,Y,X,YgX,XgY,YgX,Y2 .


If K is independent of the choice of the vectors X and Y then K=Snn1, where S is the Ricci scalar of g.


This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form SectionalCurvature(...) only after executing the command with(DifferentialGeometry) and with(Tensor) in that order.  It can always be used in the long form DifferentialGeometry:-Tensor:- SectionalCurvature(...).


with(DifferentialGeometry): with(Tensor):


Example 1.

First create a 2 dimensional manifold M1 and define a metric g1 on M1.

M4 > 

DGsetup([x, y], M1);

frame name: M1

M1 > 

g1 := evalDG( 1/y^2*(dx &t dx + dy &t dy));





Compute the sectional curvature determined by the coordinate basis vectors x and y .

M1 > 

R1 := CurvatureTensor(g1);


M1 > 

K := SectionalCurvature(g1, R1, D_x, D_y);




For 2-dimensional manifolds the sectional curvature coincides with the Gaussian curvature R1212detg. Let us check this formula.

M1 > 

R := RaiseLowerIndices(g1, R1, [1]);


M1 > 

R1212 :=Tools:-DGinfo(R, "CoefficientList", [[1,2,1,2]])[1];


M1 > 





Example 2.

First create a 3 dimensional manifold M2 and define a metric g2 on M2.

M1 > 

DGsetup([x, y, z], M2);

frame name: M2

M2 > 

g2 := evalDG(a^2/(k^2 + x^2 + y^2 + z^2)^2*(dx &t dx + dy &t dy + dz &t dz));




Define a pair of vectors which span a generic tangent plane.

M2 > 

X := evalDG(D_x + r*D_y +s*D_y);


M2 > 

Y := evalDG(D_y + t*D_z);




Calculate the curvature and sectional curvature. Note that the sectional curvature is independent of the parameters r,s,t appearing in the vector fields X and Y.

M2 > 

R2 := CurvatureTensor(g2):

M2 > 

K2 := SectionalCurvature(g2, R2, X, Y);




Since the metric g2 has constant sectional curvature and the dimension of M2 is 3, the sectional curvature is 1/6 the Ricci scalar.

M2 > 

S2 := RicciScalar(g2, R2);




Example 3.

We re-work the previous example in an orthonormal frame.

M2 > 

f := a/(k^2 + x^2 + y^2 + z^2);


M2 > 

FR := FrameData([f*dx, f*dy, f*dz], M3):

M2 > 


frame name: M3

M3 > 

g3 := evalDG(Theta1 &t Theta1 + Theta2 &t Theta2 + Theta3 &t Theta3);




Calculate the sectional curvature.

M3 > 

R3 := CurvatureTensor(g3):

M3 > 

K3 := SectionalCurvature(g3, R3, E1 +r*E2 +t*E3, E2 +t*E3);




Example 4. 

First create a 3 dimensional manifold M4 and define a metric g4 on M4.

M3 > 

DGsetup([x, y, z], M4);

frame name: M4

M4 > 

g4 := evalDG(y*dx &t dx + dy &t dy + dz &t dz);




Define a pair of vectors which span a generic tangent plane.

M4 > 

X := evalDG(D_x + r*D_y + s*D_z);


M4 > 

Y := evalDG(D_y + t*D_z);




Calculate the curvature and sectional curvature. In this example, the sectional curvature is dependent on the parameters r,s,t appearing in the vector fields X and Y.

M4 > 

R4 := CurvatureTensor(g4):

M4 > 

K4 := SectionalCurvature(g4, R4, X, Y);



See Also

DifferentialGeometry, Tensor, Christoffel, Physics[Christoffel], CurvatureTensor, Physics[Riemann], DGinfo,  RicciTensor, Physics[Ricci]