6.2. Change of covariant derivative

In xTensor` we can work simultaneously with any number of covariant derivatives.

The list of all covariant derivatives currently defined is

In[438]:=

$CovDs

Out[438]=

{PD, Cd}

We define another one

In[439]:=

DefCovD[CD[-a], {";", "D"}]

** DefCovD: Defining covariant derivative CD[-a] .

** DefTensor: Defining vanishing torsion tensor TorsionCD[a, -b, -c] .

** DefTensor: Defining symmetric Christoffel tensor ChristoffelCD[a, -b, -c] .

** DefTensor: Defining Riemann tensor RiemannCD[-a, -b, -c, d] . Antisymmetric only in the first pair.

** DefTensor: Defining non-symmetric Ricci tensor RicciCD[-a, -b] .

** DefCovD:  Contractions of Riemann automatically replaced by Ricci.

The difference between two covariant derivatives of the same tensor can be expressed in terms of Christoffel tensors (the C tensors of Wald), and in xTensor` we shall always use this point of view of Christoffels: they are always tensors, but associated to two covariant derivatives. The Christoffel tensor defined together with each derivative is the tensor associated to that derivative and the derivative PD associated to a generic chart.

Christoffel constructs the Christoffel tensor relating two derivatives. It is antisymmetric in its derivatives arguments.

In[440]:=

Christoffel[CD, PD][a, -b, -c]

Out[440]=

Γ[D] _ ( bc)^a  

In[441]:=

%//InputForm

Out[441]//InputForm=

ChristoffelCD[a, -b, -c]

In[442]:=

Christoffel[PD, CD][a, -b, -c]

Out[442]=

-Γ[D] _ ( bc)^a  

In[443]:=

%//InputForm

Out[443]//InputForm=

-ChristoffelCD[a, -b, -c]

The Christoffel tensor relating two non-PD derivatives is constructed automatically whenever needed, with (lexicographically) sorted derivatives, to avoid duplicity:

In[444]:=

Christoffel[CD, Cd][a, -b, -c]

** DefTensor: Defining tensor ChristoffelCdCD[a, -b, -c] .

Out[444]=

-Γ[▽, D] _ ( bc)^a  

In[445]:=

%//InputForm

Out[445]//InputForm=

-ChristoffelCdCD[a, -b, -c]

The origin of this curious conversion from Christoffel[Cd,CD] to ChristoffelCdCD is again the fact that we cannot associate information to the former.

Using this structure of Christoffel tensors we can relate any two derivatives of any tensor.

Suppose this derivative:

In[446]:=

expr = CD[-d][U[-a, b, -c]]

Out[446]=

D_d^ U_ (a c)^( b )

ChangeCovD (aka CovDToChristoffel in xTensor` version 0.7) changes by default to PD:

In[447]:=

ChangeCovD[expr]

Out[447]=

-Γ[D] _ ( dc)^e   U_ (a e)^( b ) + Γ[D] _ ( de)^b   U_ (a c)^( e ) - Γ[D] _ ( da)^e   U_ (e c)^( b ) + ∂_d^ U_ (a c)^( b )

That is equivalent to

In[448]:=

ChangeCovD[expr, CD]

Out[448]=

-Γ[D] _ ( dc)^e   U_ (a e)^( b ) + Γ[D] _ ( de)^b   U_ (a c)^( e ) - Γ[D] _ ( da)^e   U_ (e c)^( b ) + ∂_d^ U_ (a c)^( b )

but we can also change to any desired derivative:

In[449]:=

ChangeCovD[expr, CD, Cd]

Out[449]=

In[450]:=

ChangeCovD[%, Cd, CD]

Out[450]=

D_d^ U_ (a c)^( b )

If you do not like the double-derivative Christoffels, you can always break them to the CovD-PD Christoffels:

In[451]:=

%%//BreakChristoffel

Out[451]=

The expansion is recursive:

In[452]:=

ChangeCovD[Cd[-e][Cd[-a][T[f, c, -b]]], Cd]

Out[452]=

Christoffel            Construct Christoffel tensor relating two derivatives
BreakChristoffel    Rewrite a Christoffel tensor as the difference of two other Christoffel tensors
ChangeCovD            Rewrite the covariant derivative of a tensor in terms of a second derivative and Christoffels

Change of covariant derivative.

If the relation between two covariant derivatives is fully described by a Christoffel tensor, then the curvature and torsion tensors associated to them must be also related by those Christoffel tensors.

This is the curvature tensor of the derivative CD:

In[453]:=

RiemannCD[-a, -b, -c, d]

Out[453]=

R[D] _abc ^(   d)

ChangeCurvature (aka RiemannToChristoffel in xTensor` version 0.7) changes any curvature tensor of a derivative to the curvature tensor of other derivative (by default PD, with zero curvature).

In[454]:=

ChangeCurvature[%]

Out[454]=

but we can convert to any derivative:

In[455]:=

ChangeCurvature[%%, CD, Cd]

Out[455]=

In[456]:=

ChangeCurvature[RiemannCD[-a, -b, -c, a], CD, Cd]

Out[456]=

Define a covariant derivative with torsion, but not metric-compatible. Now the Christoffel tensor is non-symmetric:

In[457]:=

DefCovD[CDT[-a], {"#", "DT"}, Torsion→True]

** DefCovD: Defining covariant derivative CDT[-a] .

** DefTensor: Defining torsion tensor TorsionCDT[a, -b, -c] .

** DefTensor: Defining non-symmetric Christoffel tensor ChristoffelCDT[a, -b, -c] .

** DefTensor: Defining Riemann tensor RiemannCDT[-a, -b, -c, d] . Antisymmetric only in the first pair.

** DefTensor: Defining non-symmetric Ricci tensor RicciCDT[-a, -b] .

** DefCovD:  Contractions of Riemann automatically replaced by Ricci.

Now the formulas involving CDT will contain torsion terms:

In[458]:=

ChangeCurvature[RiemannCd[-a, -b, -c, a], Cd, CDT]

** DefTensor: Defining tensor ChristoffelCdCDT[a, -b, -c] .

Out[458]=

In[459]:=

%//InputForm

Out[459]//InputForm=

-(ChristoffelCdCDT[h$17869, -h$17869, -h$17879]*ChristoffelCdCDT[h$17879, -b, -c]) +
ChristoffelCdCDT[h$17869, -b, -h$17879]*ChristoffelCdCDT[h$17879, -h$17869, -c] - RicciCDT[-b, -c] +
ChristoffelCdCDT[h$17869, -h$17879, -c]*TorsionCDT[h$17879, -b, -h$17869] +
CDT[-b][ChristoffelCdCDT[h$17869, -h$17869, -c]] - CDT[-h$17869][ChristoffelCdCDT[h$17869, -b, -c]]

The difference between the torsion tensors of two derivatives is given by the antisymmetric part of the Christoffel relating them. In this case the torsion of Cd is zero. The change is performed by ChangeTorsion (aka TorsionToChristoffel in xTensor` version 0.7):

In[460]:=

ChangeTorsion[TorsionCDT[a, -b, -c], CDT, Cd]

Out[460]=

-Γ[▽, DT] _ ( bc)^a   + Γ[▽, DT] _ ( cb)^a  

ChangeCurvature            Change in curvature when changing between two covariant derivatives
ChangeTorsion            Change in torsion when changing between two covariant derivatives

Induced changes in curvature and torsion tensors.

Undefine some derivatives:

In[461]:=

UndefCovD/@{CD, CDT} ;

** UndefTensor: Undefined symmetric Christoffel tensor ChristoffelCD

** UndefTensor: Undefined tensor ChristoffelCdCD

** UndefTensor: Undefined non-symmetric Ricci tensor RicciCD

** UndefTensor: Undefined Riemann tensor RiemannCD

** UndefTensor: Undefined vanishing torsion tensor TorsionCD

** UndefCovD: Undefined covariant derivative CD

** UndefTensor: Undefined tensor ChristoffelCdCDT

** UndefTensor: Undefined non-symmetric Christoffel tensor ChristoffelCDT

** UndefTensor: Undefined non-symmetric Ricci tensor RicciCDT

** UndefTensor: Undefined Riemann tensor RiemannCDT

** UndefTensor: Undefined torsion tensor TorsionCDT

** UndefCovD: Undefined covariant derivative CDT

Note that xTensor` also allows metric-compatible connections with torsion. The symmetry properties of the associated curvature tensors are not complete. We shall later illustrate this type of derivatives, after defining metric fields.


Created by Mathematica  (May 16, 2008) Valid XHTML 1.1!