find the Christoffel symbols of the first or second kind for a metric tensor - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : DifferentialGeometry : Tensor : DifferentialGeometry/Tensor/Christoffel

Tensor[Christoffel] - find the Christoffel symbols of the first or second kind for a metric tensor

Calling Sequences

     Christoffel(g, h, keyword)


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

   h       - (optional) the inverse of the metric g

   keyword - (optional) a keyword string, either "FirstKind" or "SecondKind"




See Also



The Christoffel symbol of the second kind for a metric g is the unique torsion-free connection such that the associated covariant derivative operator  satisfies g=0. It can be represented as a 3-index set of coefficients:


C  ijk = 12gklgil,j + gjl,i  gij,l,


where gij  and gij are the components of the metric and its inverse, respectively, and where a comma indicates a partial derivative.


The Christoffel symbol of the first kind is the non-tensorial quantity obtained from the Christoffel symbol of the second kind by lowering its upper index with the metric:

Clij = gklCijk=12gil,j + gjl,i  gij,l,



The default value for the keyword is "SecondKind", that is, the calling sequence Christoffel(g) computes the Christoffel symbol of the second kind.


The inverse of the metric can be computed using InverseMetric.


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


with(DifferentialGeometry): with(Tensor):


Example 1.

First create a 2 dimensional manifold M and define a metric g1 on the tangent space of M.

DGsetup([x, y], M);

frame name: M


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




Calculate the Christoffel symbols of the first and second kind for g1.

C1 := Christoffel(g1, "FirstKind");



C2 := Christoffel(g1, "SecondKind");



CovariantDerivative(g1, C2);







Example 2.

Define an anholonomic frame on M and use this frame to calculate the Christoffel symbol for a metric on the tangent space of M.


FR := FrameData([dx/(1+x^2+y^2), dy/(1+x^2+y^2)], M1);



DGsetup(FR, [E], [sigma]);

frame name: M1


g2 := evalDG(sigma1 &t sigma1 + sigma2 &t sigma2);



C := Christoffel(g2);



CovariantDerivative(g2, C);






See Also

DifferentialGeometry, Tensor, CovariantDerivative, Physics[D_], CurvatureTensor, Physics[Riemann], DirectionalCovariantDerivative, GeodesicEquations, ParallelTransportEquations, TorsionTensor