Application Center - Maplesoft

App Preview:

CHRISTOFFEL Symbols

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


  

Image                                                   

 CHRISTOFFEL  Symbols 

  

                                          Univ.-Prof. Dr.-Ing. habil. Josef  BETTEN 

                                                     RWTH University Aachen 

                         Mathematical Models in Materials Science and Continuum Mechanics 

                                                          Augustinerbach 4-20 

                                                 D-52056  A a c h e n ,  Germany 

                                                  betten@mmw.rwth-aachen.de 

  

Abstract 

  

A lot of tensor operations are included in the MAPLE tensor package. Examples are 

illustrated in the following MAPLE program, where the metric tensors and the  

 CHRISTOFFEL symbols have been calculated for cylindrical and spherical coordinates. 

 

Keynotes:  Metric tensors; CHRISTOFFEL symbols; Cylindrical and Spherical coordinates 

 

Definitions 

 

The CHRISTOFFEL symbols of  the first kind are defined by 

> restart: with(tensor):

 

 

> Gamma[kij]:=(1/2)*(g[ik,j]+g[jk,i]-g[ij,k]);

 

`+`(`*`(`/`(1, 2), `*`(g[ik, j])), `*`(`/`(1, 2), `*`(g[jk, i])), `-`(`*`(`/`(1, 2), `*`(g[ij, k])))) (1)

 

where  

> g[ij,k]:=Diff(g[ij],xi[k]);

 

Diff(g[ij], xi[k]) (2)

 

is the partial derivative of  the covariant metric tensor with respect to curvlinear coordinates. 

Note that the CHRISTOFFEL symbols, in general, are not tensors unless the coordinate 

transformation is affine. 

 

Cylindrical Coordinates 

 

> cylindrical_coord:=[r,phi,z];

 

[r, phi, z] (3)

 

covariant metric tensor: 

> g_compts:=array(symmetric,sparse,1..3,1..3):

 

> g_compts[1,1]:=1: g_compts[2,2]:=r^2: g_compts[3,3]:=1:

 

The components must be stored as an array of size equal to the rank of the object,
with all index ranges beginning at one and ending at the dimension of the space.
Only "square" ranges are allowed. The index character is stored as a list of positive and
negative ones (1 or -1).  A positive one (1) in the ith position in the index character
list specifies that the ith index of the object is contravariant, while a negative one (-1)
in the ith position in the index character list specifies that the ith index of the object is
covariant. For example, [1,-1,1] specifies that the indices 1 and 3 are contravariant
(written as superscripts), while the second index is covariant (written as subscript).
 

> g:=create([-1,-1], eval(g_compts));

 

(4)

 

> D1g:=d1metric(g,cylindrical_coord):

 

> Gamma[kij]:=[ijk]; CHRISTOFFEL[first_kind][cylindrical]:=             Gamma[kij]=Christoffel1(D1g);

 

 

 

[ijk]
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 2, 2, 3 ) = 0, ( 1, 3, 2 ) = 0, ( 2, 3, 2 ) = 0, ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = 0, ( 2, 3, 3 ) = 0, ( 1, ...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 2, 2, 3 ) = 0, ( 1, 3, 2 ) = 0, ( 2, 3, 2 ) = 0, ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = 0, ( 2, 3, 3 ) = 0, ( 1, ...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 2, 2, 3 ) = 0, ( 1, 3, 2 ) = 0, ( 2, 3, 2 ) = 0, ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = 0, ( 2, 3, 3 ) = 0, ( 1, ...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 2, 2, 3 ) = 0, ( 1, 3, 2 ) = 0, ( 2, 3, 2 ) = 0, ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = 0, ( 2, 3, 3 ) = 0, ( 1, ...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 2, 2, 3 ) = 0, ( 1, 3, 2 ) = 0, ( 2, 3, 2 ) = 0, ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = 0, ( 2, 3, 3 ) = 0, ( 1, ...
(5)

 

In matrix notation we arrive at: 

> Gamma[1][ij]:=matrix(3,3,[[0,0,0],[0,r,0],[0,0,0]]); Gamma[2][ij]:=matrix(3,3,[[0,r,0],[-r,0,0],[0,0,0]]); Gamma[3][ij]:=matrix(3,3,[[0,0,0],[0,0,0],[0,0,0]]);

 

 

 

 

 

array( 1 .. 3, 1 .. 3, [( 3, 2 ) = 0, ( 2, 3 ) = 0, ( 3, 1 ) = 0, ( 1, 1 ) = 0, ( 1, 3 ) = 0, ( 1, 2 ) = 0, ( 2, 1 ) = 0, ( 3, 3 ) = 0, ( 2, 2 ) = 0 ] ) (6)

 

 

Spherical Coordinates 

 

> restart: with(tensor):

 

> spherical_coord:=[r,phi,theta];

 

[r, phi, theta] (7)

 

> g_compts:=array(symmetric,sparse,1..3,1..3):

 

> g_compts[1,1]:=1:  g_compts[2,2]:=r^2:             g_compts[3,3]:=(r*sin(phi))^2:

 

> g:=create([-1,-1],eval(g_compts));

 

(8)

 

> D1g:=d1metric(g,spherical_coord):

 

> Gamma[kij]:=[ijk];CHRISTOFFEL[first_kind][spherical]:= Gamma[kij]=Christoffel1(D1g);

 

 

 

[ijk]
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
[ijk] = (table( [( index_char ) = [-1, -1, -1], ( compts ) = array( 1 .. 3, 1 .. 3, 1 .. 3, [( 3, 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2, 1 ) = 0, ( 3, 3, 2 ) = `+`(`-`(`*`(`^`(r, 2)...
(9)

 

In matrix notation we arrive at  

> with(LinearAlgebra):

 

> Gamma[1][ij]:=matrix(3,3,[[0,0,0],[0,r,0],[0,0,r*(sin(phi))^2]]); Gamma[2][ij]:=matrix(3,3,[[0,r,0],[-r,0,0],          [0,0,r^2*sin(phi)*cos(phi)]]); Gamma[3][ij]:=matrix(3,3,[[0,0,r*(sin(phi))^2],[0,0,r^2*sin(phi)*cos(phi)], [-r*(sin(phi))^2,-r^2*sin(phi)*cos(phi),0]]);

 

 

 

 

 

 

array( 1 .. 3, 1 .. 3, [( 3, 1 ) = `+`(`-`(`*`(r, `*`(`^`(sin(phi), 2))))), ( 1, 2 ) = 0, ( 2, 3 ) = `*`(`^`(r, 2), `*`(sin(phi), `*`(cos(phi)))), ( 2, 2 ) = 0, ( 1, 1 ) = 0, ( 3, 3 ) = 0, ( 1, 3 ) = ... (10)

 

 

In a similar way one can find the CHRISTOFFEL symbols of  the second kind. 

>  

 

Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.
 

 

>