The Christoffel symbols - Maple Programming Help

Physics[Christoffel] - The Christoffel symbols

 Calling Sequence Christoffel[$\mathrm{mu},\mathrm{alpha},\mathrm{beta}$] convert(expression, Christoffel)

Parameters

 $\mathrm{mu},\mathrm{alpha},\mathrm{beta}$ - the indices, as names representing integer numbers between 0 and the spacetime dimension, they can also be the numbers themselves

Description

 • The all covariant Christoffel[mu, alpha, beta], displayed as ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$, is a computational representation for the Christoffel symbols, defined in terms of derivatives of the spacetime metric as

${\Gamma }_{\mu ,\alpha ,\beta }=\frac{1}{2}\left({\partial }_{\beta }\left({g}_{\alpha ,\mu }\right)+{\partial }_{\alpha }\left({g}_{\beta ,\mu }\right)-{\partial }_{\mu }\left({g}_{\alpha ,\beta }\right)\right)$

 where the spacetime differentiation operator ${\partial }_{\mathrm{\mu }}$ is implemented in Maple as d_[mu]. From this definition, Christoffel is symmetric with respect to interchanging the second and third indices.
 • Christoffel can also have contravariant indices, typically the first one. When any of the indices of Christoffel is contravariant, the definition for its components is according to ${\Gamma }_{\alpha ,\beta }^{\mu }={g}_{}^{\mu ,\rho }{\Gamma }_{\rho ,\alpha ,\beta },{\Gamma }_{\mu \beta }^{\alpha }={g}_{}^{\alpha ,\rho }{\Gamma }_{\mu ,\rho ,\beta }$ and ${\Gamma }_{\mu ,\alpha }^{\beta }={g}^{\beta ,\rho }{\Gamma }_{\mu ,\alpha ,\rho }$ and not by raising the indices in the terms on the right-hand side of the definition above for ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$. Note also that, despite computing with them as tensors, the Christoffel symbols are not actual tensors in that, when you transform the coordinates, they do not transform like the coordinate differentials (regarding their contravariant indices) nor like the derivatives of a scalar (regarding their covariant indices).
 • To express ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$ or ${\Gamma }_{\alpha ,\beta }^{\mu }$ using this definition in terms of derivatives of the spacetime metric use convert to g_. Sometimes it is also convenient to rewrite tensorial expressions the other way around, in terms of the Christoffel symbols and its derivatives. For example: non-covariant derivatives of the metric or any of the general relativity tensors that can be expressed in terms of them. For this purpose you can use convert(expression, Christoffel) - see the Examples section.
 • When the indices of Christoffel assume integer values they are expected to be between 0 and the spacetime dimension, prefixed by ~ when they are contravariant, and the corresponding value of Christoffel is returned. The values 0 and 4, or for the case any dimension set for the spacetime, represent the same object. When the indices have symbolic values Christoffel returns unevaluated after normalizing its indices taking into account the symmetry property of the 2nd and 3rd indices.
 • Computations performed with the Physics package commands take into account Einstein's sum rule for repeated indices - see . and Simplify. The distinction between covariant and contravariant indices in the input of tensors is done by prefixing contravariant ones with ~, say as in ~mu; in the output, contravariant indices are displayed as superscripts. For contracted indices, you can enter them one covariant and one contravariant. Note however that - provided that the spacetime metric is galilean (Euclidean or Minkowski), or the object is a tensor also in curvilinear coordinates - this distinction in the input is not relevant, and so contracted indices can be entered as both covariant or both contravariant, in which case they will be automatically rewritten as one covariant and one contravariant. Tensors can have spacetime and space indices at the same time. To change the type of letter used to represent spacetime or space indices see Setup.
 • During a Maple session, the value of any component of ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$ is automatically determined by the value of the spacetime metric at the moment. When Physics is loaded, the spacetime is set to Minkowski type, and so all the elements of Christoffel are automatically zero. To set the spacetime metric to something different use Setup. Also, at least one system of coordinates must be set in order to compute the derivatives entering the definition of Christoffel. For that purpose see Coordinates or Setup.
 • Besides being indexed with three indices, Christoffel accepts two keywords:
 – array: (synonym: Array, or no indices whatsoever, as in Christoffel[]) returns an Array that when indexed with numerical values from 1 to the dimension of spacetime it returns the value of each of the components of Christoffel. If this keyword is passed together with indices, that can be covariant or contravariant, the resulting array takes into account the character of the indices. If one of these indices has a numerical value, if contravariant then preceded by ~, the returned object is the corresponding 2 x 2 Matrix.
 – nonzero: returns a set of equations, with the left-hand side as a sequence of three positive numbers identifying the element of ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$ and the corresponding value on the right-hand side. Note that this set is actually the output of the ArrayElems command when passing to it the Array obtained with the keyword array.
 • Some automatic checking and normalization are carried out each time you enter Christoffel[...]. The checking is concerned with possible syntax errors. The automatic normalization takes into account the symmetry of Christoffel[mu, alpha, beta] with respect to interchanging the positions of the indices alpha and beta.
 • The %Christoffel command is the inert form of Christoffel, so it represents the same mathematical operation but without performing it. To perform the operation, use value.

Examples

 > $\mathrm{with}\left(\mathrm{Physics}\right):$
 > $\mathrm{Setup}\left(\mathrm{mathematicalnotation}=\mathrm{true}\right)$
 $\left[{\mathrm{mathematicalnotation}}{=}{\mathrm{true}}\right]$ (1)

Set up a coordinate system to work with - the first one to be set is automatically taken as the differentiation variables for d_, the covariant derivative D_ and the dAlembertian

 > $\mathrm{Setup}\left(\mathrm{coordinatesystems}=\mathrm{cartesian}\right)$
 ${\mathrm{Default differentiation variables for d_, D_ and dAlembertian are:}}\left\{{X}{=}\left({x}{,}{y}{,}{z}{,}{t}\right)\right\}$
 ${\mathrm{Systems of spacetime Coordinates are:}}\left\{{X}{=}\left({x}{,}{y}{,}{z}{,}{t}\right)\right\}$
 $\left[{\mathrm{coordinatesystems}}{=}\left\{{X}\right\}\right]$ (2)

When Physics is initialized, the default spacetime metric is of Minkowski type. You can see the metric by querying Setup, as in Setup(metric);, or by directly entering the metric g_ with no indices

 > ${\mathrm{g_}}_{[]}$
 ${{g}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}}{=}\left[\begin{array}{rrrr}{-}{1}& {0}& {0}& {0}\\ {0}& {-}{1}& {0}& {0}\\ {0}& {0}& {-}{1}& {0}\\ {0}& {0}& {0}& {1}\end{array}\right]$ (3)

Check the nonzero components of Christoffel: because the default spacetime is of Minkowski type, there are none

 > ${\mathrm{Christoffel}}_{\mathrm{nonzero}}$
 ${{\mathrm{\Gamma }}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}{,}{\mathrm{\alpha }}}{=}\left\{\right\}$ (4)

Hence

 > ${\mathrm{Christoffel}}_{\mathrm{μ},\mathrm{α},\mathrm{β}}$
 ${0}$ (5)

Consequently, all the general relativity tensors defined in terms of Christoffel and derivatives of the metric g_ are also automatically zero

 > ${\mathrm{Einstein}}_{\mathrm{μ},\mathrm{ν}}$
 ${0}$ (6)
 > ${\mathrm{Ricci}}_{\mathrm{μ},\mathrm{ν}}$
 ${0}$ (7)
 > ${\mathrm{Riemann}}_{\mathrm{μ},\mathrm{ν},\mathrm{ρ},\mathrm{σ}}$
 ${0}$ (8)
 > ${\mathrm{Weyl}}_{\mathrm{μ},\mathrm{ν},\mathrm{ρ},\mathrm{σ}}$
 ${0}$ (9)

For the same reason the covariant derivative ${𝒟}_{\mathrm{\mu }}={\partial }_{\mathrm{\mu }}$; for illustration purposes Define an arbitrary spacetime tensor $A$

 > $\mathrm{Define}\left(A\right)$
 ${\mathrm{Defined objects with tensor properties}}$
 $\left\{{A}{,}{{\mathrm{\gamma }}}_{{\mathrm{\mu }}}{,}{{\mathrm{\sigma }}}_{{\mathrm{\mu }}}{,}{{X}}_{{\mathrm{\mu }}}{,}{{\partial }}_{{\mathrm{\mu }}}{,}{{g}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}}{,}{{\mathrm{\delta }}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}}{,}{{\mathrm{\epsilon }}}_{{\mathrm{\alpha }}{,}{\mathrm{\beta }}{,}{\mathrm{\mu }}{,}{\mathrm{\nu }}}\right\}$ (10)
 > $\mathrm{D_}[\mathrm{μ}]\left(A[\mathrm{~nu}]\left(X\right)\right)$
 ${{\partial }}_{{\mathrm{\mu }}}{}\left({{A}}_{\phantom{{}}\phantom{{\mathrm{\nu }}}}^{\phantom{{}}{\mathrm{\nu }}}{}\left({X}\right)\right)$ (11)

To set the scenario to be an arbitrary non-galilean spacetime, set the metric to be arbitrary (that is, depending on 10 arbitrary functions of the spacetime coordinates $x,y,z,t$)

 > $\mathrm{Setup}\left(\mathrm{metric}=\mathrm{arbitrary}\right)$
 $\left[{\mathrm{metric}}{=}\left\{\left({1}{,}{1}\right){=}{\mathrm{_F1}}{}\left({X}\right){,}\left({1}{,}{2}\right){=}{\mathrm{_F2}}{}\left({X}\right){,}\left({1}{,}{3}\right){=}{\mathrm{_F3}}{}\left({X}\right){,}\left({1}{,}{4}\right){=}{\mathrm{_F4}}{}\left({X}\right){,}\left({2}{,}{2}\right){=}{\mathrm{_F5}}{}\left({X}\right){,}\left({2}{,}{3}\right){=}{\mathrm{_F6}}{}\left({X}\right){,}\left({2}{,}{4}\right){=}{\mathrm{_F7}}{}\left({X}\right){,}\left({3}{,}{3}\right){=}{\mathrm{_F8}}{}\left({X}\right){,}\left({3}{,}{4}\right){=}{\mathrm{_F9}}{}\left({X}\right){,}\left({4}{,}{4}\right){=}{\mathrm{_F10}}{}\left({X}\right)\right\}\right]$ (12)
 > ${\mathrm{g_}}_{[]}$
 ${{g}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}}{=}\left[\begin{array}{cccc}{\mathrm{_F1}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F2}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F3}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F4}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)\\ {\mathrm{_F2}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F5}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F6}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F7}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)\\ {\mathrm{_F3}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F6}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F8}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F9}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)\\ {\mathrm{_F4}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F7}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F9}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)& {\mathrm{_F10}}{}\left({x}{,}{y}{,}{z}{,}{t}\right)\end{array}\right]$ (13)

When the indices are not numerical, Christoffel returns itself after normalizing its second and third indices taking advantage of the symmetry under exchange of them

 > ${\mathrm{Christoffel}}_{\mathrm{μ},\mathrm{α},\mathrm{β}}$
 ${{\mathrm{\Gamma }}}_{{\mathrm{\mu }}{,}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}$ (14)
 > ${\mathrm{Christoffel}}_{\mathrm{μ},\mathrm{β},\mathrm{α}}$
 ${{\mathrm{\Gamma }}}_{{\mathrm{\mu }}{,}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}$ (15)
 > $-$
 ${0}$ (16)

To express Christoffel in terms of its definition in terms of the spacetime metric g_, use convert to g_

 > $\mathrm{convert}\left(,\mathrm{g_}\right)$
 $\frac{\left({{\partial }}_{{\mathrm{\beta }}}{}\left({{g}}_{{\mathrm{\alpha }}{,}{\mathrm{\mu }}}\right)\right)}{{2}}{+}\frac{\left({{\partial }}_{{\mathrm{\alpha }}}{}\left({{g}}_{{\mathrm{\beta }}{,}{\mathrm{\mu }}}\right)\right)}{{2}}{-}\frac{\left({{\partial }}_{{\mathrm{\mu }}}{}\left({{g}}_{{\mathrm{\alpha }}{,}{\mathrm{\beta }}}\right)\right)}{{2}}$ (17)

To rewrite expressions like this one back in terms of Christoffel and its derivatives use convert(... Christoffel)

 > $\mathrm{convert}\left(,\mathrm{Christoffel}\right)$
 ${{\mathrm{\Gamma }}}_{{\mathrm{\mu }}{,}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}$ (18)
 > ${\mathrm{Riemann}}_{\mathrm{~alpha},\mathrm{β},\mathrm{μ},\mathrm{ν}}$
 ${{R}}_{\phantom{{}}\phantom{{\mathrm{\alpha }}}{\mathrm{\beta }}{,}{\mathrm{\mu }}{,}{\mathrm{\nu }}}^{\phantom{{}}{\mathrm{\alpha }}\phantom{{\mathrm{\beta }}}\phantom{{,}}\phantom{{\mathrm{\mu }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}$ (19)
 > $\mathrm{convert}\left(,\mathrm{Christoffel}\right)$
 ${{\partial }}_{{\mathrm{\mu }}}{}\left({{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\alpha }}}{\mathrm{\beta }}{,}{\mathrm{\nu }}}^{\phantom{{}}{\mathrm{\alpha }}\phantom{{\mathrm{\beta }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}\right){-}\left({{\partial }}_{{\mathrm{\nu }}}{}\left({{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\alpha }}}{\mathrm{\beta }}{,}{\mathrm{\mu }}}^{\phantom{{}}{\mathrm{\alpha }}\phantom{{\mathrm{\beta }}}\phantom{{,}}\phantom{{\mathrm{\mu }}}}\right)\right){+}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\alpha }}}{\mathrm{\kappa }}{,}{\mathrm{\mu }}}^{\phantom{{}}{\mathrm{\alpha }}\phantom{{\mathrm{\kappa }}}\phantom{{,}}\phantom{{\mathrm{\mu }}}}{}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\kappa }}}{\mathrm{\beta }}{,}{\mathrm{\nu }}}^{\phantom{{}}{\mathrm{\kappa }}\phantom{{\mathrm{\beta }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}{-}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\alpha }}}{\mathrm{\kappa }}{,}{\mathrm{\nu }}}^{\phantom{{}}{\mathrm{\alpha }}\phantom{{\mathrm{\kappa }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}{}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\kappa }}}{\mathrm{\beta }}{,}{\mathrm{\mu }}}^{\phantom{{}}{\mathrm{\kappa }}\phantom{{\mathrm{\beta }}}\phantom{{,}}\phantom{{\mathrm{\mu }}}}$ (20)
 > ${\mathrm{Christoffel}}_{\mathrm{~mu},\mathrm{α},\mathrm{β}}$
 ${{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\mu }}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{\mathrm{\mu }}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}$ (21)
 > $\mathrm{convert}\left(,\mathrm{g_}\right)$
 $\frac{{{g}}_{\phantom{{}}\phantom{{\mathrm{\mu }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}^{\phantom{{}}{\mathrm{\mu }}{,}{\mathrm{\nu }}}{}\left({{\partial }}_{{\mathrm{\beta }}}{}\left({{g}}_{{\mathrm{\alpha }}{,}{\mathrm{\nu }}}\right){+}{{\partial }}_{{\mathrm{\alpha }}}{}\left({{g}}_{{\mathrm{\beta }}{,}{\mathrm{\nu }}}\right){-}\left({{\partial }}_{{\mathrm{\nu }}}{}\left({{g}}_{{\mathrm{\alpha }}{,}{\mathrm{\beta }}}\right)\right)\right)}{{2}}$ (22)
 > $\mathrm{convert}\left(,\mathrm{Christoffel}\right)$
 ${{g}}_{\phantom{{}}\phantom{{\mathrm{\mu }}}\phantom{{,}}\phantom{{\mathrm{\nu }}}}^{\phantom{{}}{\mathrm{\mu }}{,}{\mathrm{\nu }}}{}{{\mathrm{\Gamma }}}_{{\mathrm{\nu }}{,}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}$ (23)
 > $\mathrm{Simplify}\left(\right)$
 ${{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\mu }}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{\mathrm{\mu }}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}$ (24)

Related to displaying the components of Christoffel, it is convenient to have a compact display of the 10 arbitrary functions entering the metric as well as of their derivatives; for that purpose use the enhanced display scheme of the differential equation packages.

 > $\mathrm{PDEtools}:-\mathrm{declare}\left(\right)$
 ${\mathrm{_F1}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F1}}$
 ${\mathrm{_F10}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F10}}$
 ${\mathrm{_F2}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F2}}$
 ${\mathrm{_F3}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F3}}$
 ${\mathrm{_F4}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F4}}$
 ${\mathrm{_F5}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F5}}$
 ${\mathrm{_F6}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F6}}$
 ${\mathrm{_F7}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F7}}$
 ${\mathrm{_F8}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F8}}$
 ${\mathrm{_F9}}{}\left({x}{,}{y}{,}{z}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F9}}$ (25)

So from herein, in the display of expressions, derivatives are displayed as indexed and the functionality of the arbitrary functions is suppressed.

Check the value of ${\mathrm{\Gamma }}_{\mathrm{\alpha ,\mu ,\nu }}$ for $\mathrm{\alpha }$ = $\mathrm{\mu }$ = $\mathrm{\nu }$ = 1

 > ${\mathrm{Christoffel}}_{1,1,1}$
 $\frac{{{\mathrm{_F1}}}_{{x}}}{{2}}$ (26)

Now of ${\Gamma }_{\alpha ,\beta }^{\mu }$ for $\mathrm{\alpha }$ = $\mathrm{\mu }$ = $\mathrm{\nu }$ = 1 (note you enter the contravariant index prefixed by ~)

 > ${\mathrm{Christoffel}}_{\mathrm{~1},1,1}$
 ${-}\frac{{-}{{\mathrm{_F1}}}_{{t}}{}{{\mathrm{_F6}}}^{{2}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{z}}{}{{\mathrm{_F7}}}^{{2}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F2}}{}{{\mathrm{_F9}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F5}}{}{{\mathrm{_F9}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F8}}{}{{\mathrm{_F7}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F10}}{}{{\mathrm{_F6}}}^{{2}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F2}}{}{{\mathrm{_F9}}}^{{2}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{{\mathrm{_F7}}}^{{2}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{{\mathrm{_F6}}}^{{2}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{-}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F4}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{2}{}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}}{{2}{}\left({{\mathrm{_F2}}}^{{2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{-}{{\mathrm{_F2}}}^{{2}}{}{{\mathrm{_F9}}}^{{2}}{-}{2}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{+}{2}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{2}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{2}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{\mathrm{_F1}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{\mathrm{_F1}}{}{\mathrm{_F5}}{}{{\mathrm{_F9}}}^{{2}}{+}{\mathrm{_F1}}{}{\mathrm{_F8}}{}{{\mathrm{_F7}}}^{{2}}{-}{2}{}{\mathrm{_F1}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{+}{\mathrm{_F1}}{}{\mathrm{_F10}}{}{{\mathrm{_F6}}}^{{2}}{+}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{{\mathrm{_F4}}}^{{2}}{+}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{{\mathrm{_F3}}}^{{2}}{-}{2}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{}{\mathrm{_F4}}{-}{{\mathrm{_F7}}}^{{2}}{}{{\mathrm{_F3}}}^{{2}}{+}{2}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{}{\mathrm{_F4}}{-}{{\mathrm{_F6}}}^{{2}}{}{{\mathrm{_F4}}}^{{2}}\right)}$ (27)

To compute with a representation for Christoffel without actually performing the operation, use the inert form %Christoffel. To afterwards perform the operation use value

 > ${\mathrm{%Christoffel}}_{1,1,1}$
 ${{\mathrm{%Christoffel}}}_{{1}{,}{1}{,}{1}}$ (28)
 > $\mathrm{value}\left(\right)$
 $\frac{{{\mathrm{_F1}}}_{{x}}}{{2}}$ (29)

Compute Arrays with all the components of ${\mathrm{\Gamma }}_{\mathrm{\mu ,\alpha ,\beta }}$ and ${\Gamma }_{\alpha ,\beta }^{\mu }$

 > ${\mathrm{Christoffel}}_{\mathrm{μ},\mathrm{α},\mathrm{β},\mathrm{array}}$
 ${{\mathrm{\Gamma }}}_{{\mathrm{\mu }}{,}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}{=}\left[\begin{array}{c}{\mathrm{1..4 x 1..4 x 1..4}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{\mathrm{anything}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (30)
 > $\mathrm{C1}≔\mathrm{rhs}\left(\right)$
 ${\mathrm{C1}}{≔}\left[\begin{array}{c}{\mathrm{1..4 x 1..4 x 1..4}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{\mathrm{anything}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (31)
 > ${\mathrm{Christoffel}}_{\mathrm{~mu},\mathrm{α},\mathrm{β},\mathrm{array}}$
 ${{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{\mathrm{\mu }}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{\mathrm{\mu }}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}{=}\left[\begin{array}{c}{\mathrm{1..4 x 1..4 x 1..4}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{\mathrm{anything}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (32)
 > $\mathrm{C2}≔\mathrm{rhs}\left(\right)$
 ${\mathrm{C2}}{≔}\left[\begin{array}{c}{\mathrm{1..4 x 1..4 x 1..4}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{\mathrm{anything}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (33)

Because these arrays of values are computed by already taking into account the character (covariant/contravariant) of each index, you do not need to indicate furthermore that character. Thus, this is the all covariant ${\mathrm{\Gamma }}_{\mathrm{\alpha ,\mu ,\nu }}$ with $\mathrm{\alpha }$ = $\mathrm{\mu }$ = $\mathrm{\nu }$ = 1

 > ${\mathrm{C1}}_{1,1,1}$
 $\frac{{{\mathrm{_F1}}}_{{x}}}{{2}}$ (34)

and this is the value of ${\Gamma }_{\alpha ,\beta }^{\mu }$ for $\mathrm{\alpha }$ = $\mathrm{\mu }$ = $\mathrm{\nu }$ = 1

 > ${\mathrm{C2}}_{1,1,1}$
 ${-}\frac{{-}{{\mathrm{_F1}}}_{{t}}{}{{\mathrm{_F6}}}^{{2}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{z}}{}{{\mathrm{_F7}}}^{{2}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F2}}{}{{\mathrm{_F9}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F5}}{}{{\mathrm{_F9}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F8}}{}{{\mathrm{_F7}}}^{{2}}{-}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F10}}{}{{\mathrm{_F6}}}^{{2}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F2}}{}{{\mathrm{_F9}}}^{{2}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{{\mathrm{_F7}}}^{{2}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{{\mathrm{_F6}}}^{{2}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{-}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{z}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F4}}{-}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{t}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F3}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F4}}{+}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F4}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{{\mathrm{_F1}}}_{{y}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{+}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{-}{2}{}{{\mathrm{_F2}}}_{{x}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{+}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{2}{}{{\mathrm{_F1}}}_{{x}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}}{{2}{}\left({{\mathrm{_F2}}}^{{2}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{-}{{\mathrm{_F2}}}^{{2}}{}{{\mathrm{_F9}}}^{{2}}{-}{2}{}{\mathrm{_F2}}{}{\mathrm{_F8}}{}{\mathrm{_F7}}{}{\mathrm{_F4}}{+}{2}{}{\mathrm{_F2}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{-}{2}{}{\mathrm{_F2}}{}{\mathrm{_F10}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{+}{2}{}{\mathrm{_F2}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{}{\mathrm{_F4}}{-}{\mathrm{_F1}}{}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{\mathrm{_F10}}{+}{\mathrm{_F1}}{}{\mathrm{_F5}}{}{{\mathrm{_F9}}}^{{2}}{+}{\mathrm{_F1}}{}{\mathrm{_F8}}{}{{\mathrm{_F7}}}^{{2}}{-}{2}{}{\mathrm{_F1}}{}{\mathrm{_F7}}{}{\mathrm{_F9}}{}{\mathrm{_F6}}{+}{\mathrm{_F1}}{}{\mathrm{_F10}}{}{{\mathrm{_F6}}}^{{2}}{+}{\mathrm{_F5}}{}{\mathrm{_F8}}{}{{\mathrm{_F4}}}^{{2}}{+}{\mathrm{_F5}}{}{\mathrm{_F10}}{}{{\mathrm{_F3}}}^{{2}}{-}{2}{}{\mathrm{_F5}}{}{\mathrm{_F9}}{}{\mathrm{_F3}}{}{\mathrm{_F4}}{-}{{\mathrm{_F7}}}^{{2}}{}{{\mathrm{_F3}}}^{{2}}{+}{2}{}{\mathrm{_F7}}{}{\mathrm{_F6}}{}{\mathrm{_F3}}{}{\mathrm{_F4}}{-}{{\mathrm{_F6}}}^{{2}}{}{{\mathrm{_F4}}}^{{2}}\right)}$ (35)

Compare with the output of ${\Gamma }_{1,1}^{1}$ in eq (27)

 > $\mathrm{normal}\left(-\right)$
 ${0}$ (36)

The Schwarzschild metric in spherical coordinates (see g_) and the four 2 x 2 matrices for ${\Gamma }_{\alpha ,\beta }^{\mu }$ by giving values to its first index

 > ${\mathrm{g_}}_{\mathrm{sc}}$
 ${\mathrm{Systems of spacetime Coordinates are:}}\left\{{X}{=}\left({r}{,}{\mathrm{\theta }}{,}{\mathrm{\phi }}{,}{t}\right)\right\}$
 ${\mathrm{Default differentiation variables for d_, D_ and dAlembertian are:}}\left\{{X}{=}\left({r}{,}{\mathrm{\theta }}{,}{\mathrm{\phi }}{,}{t}\right)\right\}$
 ${\mathrm{The Schwarzschild metric in coordinates}}\left[{r}{,}{\mathrm{\theta }}{,}{\mathrm{\phi }}{,}{t}\right]$
 ${\mathrm{Parameters:}}\left[{m}\right]$
 ${{g}}_{{\mathrm{\mu }}{,}{\mathrm{\nu }}}{=}\left[\begin{array}{cccc}\frac{{r}}{{-}{r}{+}{2}{}{m}}& {0}& {0}& {0}\\ {0}& {-}{{r}}^{{2}}& {0}& {0}\\ {0}& {0}& {-}{{r}}^{{2}}{}{{\mathrm{sin}}{}\left({\mathrm{θ}}\right)}^{{2}}& {0}\\ {0}& {0}& {0}& \frac{{r}{-}{2}{}{m}}{{r}}\end{array}\right]$ (37)
 > $\mathrm{seq}\left({\mathrm{Christoffel}}_{j,\mathrm{α},\mathrm{β},\mathrm{matrix}},j=\left[\mathrm{~1},\mathrm{~2},\mathrm{~3},\mathrm{~4}\right]\right)$
 ${{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{1}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{1}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}{=}\left[\begin{array}{cccc}\frac{{m}}{{r}{}\left({-}{r}{+}{2}{}{m}\right)}& {0}& {0}& {0}\\ {0}& {-}{r}{+}{2}{}{m}& {0}& {0}\\ {0}& {0}& \left({-}{r}{+}{2}{}{m}\right){}{{\mathrm{sin}}{}\left({\mathrm{\theta }}\right)}^{{2}}& {0}\\ {0}& {0}& {0}& \frac{{-}{2}{}{{m}}^{{2}}{+}{m}{}{r}}{{{r}}^{{3}}}\end{array}\right]{,}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{2}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{2}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}{=}\left[\begin{array}{cccc}{0}& \frac{{1}}{{r}}& {0}& {0}\\ \frac{{1}}{{r}}& {0}& {0}& {0}\\ {0}& {0}& {-}{\mathrm{sin}}{}\left({\mathrm{\theta }}\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}\right)& {0}\\ {0}& {0}& {0}& {0}\end{array}\right]{,}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{3}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{3}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}{=}\left[\begin{array}{cccc}{0}& {0}& \frac{{1}}{{r}}& {0}\\ {0}& {0}& \frac{{\mathrm{cos}}{}\left({\mathrm{\theta }}\right)}{{\mathrm{sin}}{}\left({\mathrm{\theta }}\right)}& {0}\\ \frac{{1}}{{r}}& \frac{{\mathrm{cos}}{}\left({\mathrm{\theta }}\right)}{{\mathrm{sin}}{}\left({\mathrm{\theta }}\right)}& {0}& {0}\\ {0}& {0}& {0}& {0}\end{array}\right]{,}{{\mathrm{\Gamma }}}_{\phantom{{}}\phantom{{4}}{\mathrm{\alpha }}{,}{\mathrm{\beta }}}^{\phantom{{}}{4}\phantom{{\mathrm{\alpha }}}\phantom{{,}}\phantom{{\mathrm{\beta }}}}{=}\left[\begin{array}{cccc}{0}& {0}& {0}& {-}\frac{{m}}{{r}{}\left({-}{r}{+}{2}{}{m}\right)}\\ {0}& {0}& {0}& {0}\\ {0}& {0}& {0}& {0}\\ {-}\frac{{m}}{{r}{}\left({-}{r}{+}{2}{}{m}\right)}& {0}& {0}& {0}\end{array}\right]$ (38)
 >