Covariant derivative with tetrads

340 views
Skip to first unread message

Sashwat Tanay

unread,
Mar 17, 2024, 5:53:05 PM3/17/24
to xAct Tensor Computer Algebra
Hello,

Objective: I am trying xAct to spit out the simple relation,Screenshot 2024-03-17 at 21.41.29.png
where the Greek and Latin indices are coordinate and tetrad indices respectively.

Method: I am using xCoba to produce the above relation with 
black indices --> coordinate indices
red indices --> tetrad indices (the tetrad name is "free")

Issue: The results are shown in the picture below. The first two lines do the calculation totally in the coordinate bases (for warm-up), and produce the right results. However, the next two lines try to do the same with tetrads. As you can see, I am unable to produce the last term of the above equation (involving Ricci rotation coefficient \omega_mu^{ac}).

How to produce this missing term? Thanks in advance.

Screenshot 2024-03-17 at 21.45.42.png

Jose

unread,
Mar 18, 2024, 12:08:30 AM3/18/24
to xAct Tensor Computer Algebra
Hi,

The expression cd[-a][ x[{b, fred}] ] is the covariant derivative cd[-a] of x[{b, fred}] == x[a] Basis[-a, {b, fred}]. This last object is the contraction of a vector field x[a] with the basis covector field Basis[-a, {b, fred}] and therefore it is a scalar. All covariant derivatives coincide on scalars, with no Christoffel terms when changing among them.

In other words, what you are looking for is this other expression:

    cd[-a][ x[b] ] Basis[-b, {c, fred}]
    ChangeCovD[%, cd, PDfred]
    % // ContractBasis

and in this case you should set this in advance

    SetOptions[ContractBasis, OverDerivatives -> True]

so that Basis vectors and covectors are contracted through derivatives.  Note also that I'm using PDfred and not PD, because each frame in xCoba has its own "parallel" derivative, which is the covariant derivative with no curvature which gives zero on the vector and covector fields of the frame. The covariant derivative PD is what we call the "fiducial partial derivative", which exists in xTensor and is supposed to be the parallel derivative of an unspecified coordinated frame.

I recommend to read section 2.1 of xCobaDoc.nb on parallel derivatives and Christoffel tensors.

Cheers,
Jose.

Sashwat Tanay

unread,
Mar 22, 2024, 8:42:55 AM3/22/24
to xAct Tensor Computer Algebra
Thanks, Jose. That helps.

However, these so-called Ricci rotation coefficients don't seem to have the anti-symmetry property in their last two indices (Eq. J34 of Carroll)

Screenshot 2024-03-22 at 13.36.54.png

I then forced this anti-symmetry by hand. Is that OK? Shouldn't this anti-symmetry be already built into xCoba?

Screenshot 2024-03-22 at 13.36.35.png 

Jose

unread,
Mar 23, 2024, 2:06:51 PM3/23/24
to xAct Tensor Computer Algebra
Hi,

Short answer: the antisymmetry is in indices 1 and 3. That's a convention choice in xAct. But it is not explicit...

Longer answer: Let us discuss conventions, and I'm going to use xAct terminology, using the opportunity to explain other things:

Christoffel tensors (i.e. differences of connections) have three indices: there are two indices on the same vector bundle, one up and one down, and then there is a third index (which I'll call the "differentiation index") in the tangent bundle, another down index. The first two indices do not need to be in the tangent bundle, but the differentiation index is always on the tangent bundle. (xAct uses AChristoffel instead of Christoffel for the case when the vector bundle of those two indices is not the tangent bundle, but we don't need this here.) Different authors use different orders for these three indices. The convention in xAct is Christoffel[up, diffdown, down], where the up, down indices are the first two indices above and the diffdown is the differentiation index. The symmetries of this Christoffel tensor depend on where this tensor comes from.

If this Christoffel is the difference between the Levi-Civita connection of a metric and an ordinary derivative (both on the tangent bundle), which is the standard situation in GR, then the Christoffel has the usual symmetry in the indices 2 and 3.

The situation we are discussing here is different: we have a metric g and its Levi-Civita cd. Then we have a frame B (your fred) in which the metric has constant components (not necessarily 0, 1, or -1). This frame B has a parallel derivative (called PDB in xAct/xCoba) which has torsion in general (hence it is not an ordinary derivative). The "Ricci rotation coefficients" are just the Christoffel tensor between cd and PDB, and again has indices Christoffel[up, diffdown, down], though it is usually presented lowering the first index with the metric, so that we have Christoffel[down, diffdown, down]. This tensor is now antisymmetric in the first and third indices in the conventions of xAct.

In your notes, the two up-down indices a, b appear in positions 2 and 3. The differentiation index mu appears in position 1. So we see how conventions differ. The partial has the differentiation index mu, of course.

Let me show it with xAct. First we need to define the manifold, the general basis (i.e. not-coordinated) and the metric:

<< xAct`xCoba`
DefManifold[M, 4, {a, b, c, d, e, f}]
DefBasis[B, TangentM, {0, 1, 2, 3}]
DefMetric[-1, g[-a, -b], cd]

Define the Ricci rotation tensor. This is just Christoffel[cd, PDB] as I said above, which is internally called ChristoffelcdPDB. I want to show that this object is antisymmetric in the first and third indices. Symmetrize them, then convert to derivatives of the metric and canonicalize:

In[]:= Christoffel[cd, PDB][-a, -b, -c] + Christoffel[cd, PDB][-c, -b, -a] // ChristoffelToGradMetric // ToCanonical
Out[]= PDB[-b][g[-a, -c]]

We see this will be zero if the basis is associated to the metric, or in other words, if the metric has constant components in the basis B. More explicitly:

In[]:= ContractBasis[% // ToBasis[B], OverDerivatives -> True]
Out[]= PDB[{-b, -B}][g[{-a, -B}, {-c, -B}]]

Those g[{-a, -B}, {-c, -B}] are the scalar components of the metric in the basis B. All covariant derivatives agree on scalar fields, so the PDB in front is just any derivative. Our RRC will be antisymmetric in indices 1 and 3 if these are constants. Of course, xCoba doesn't know yet that you have constants, so the symmetry is not explict:

In[]:= SymmetryGroupOfTensor[ChristoffelcdPDB]
Out[]= StrongGenSet[{}, GenSet[]]

If you know this will be the situation you will be working on, you can add explicity the symmetry as you did:

SymmetryGroupOfTensor[ChristoffelcdPDB] ^= StrongGenSet[{1, 3}, GenSet[-Cycles[{1, 3}]]]

Now:

In[]:= Christoffel[cd, PDB][-a, -b, -c] + Christoffel[cd, PDB][-c, -b, -a] // ToCanonical
Out[]= 0

Cheers,
Jose.

Jose

unread,
Mar 23, 2024, 2:20:59 PM3/23/24
to xAct Tensor Computer Algebra
Hi again,

I forgot to mention that xCoba has a command RicciRotation[cd, B] that returns precisely Christoffel[cd, PDB], in case that's easier to read. I also used RRC in the text above, meaning "Ricci Rotation Coefficients", which is another common name for this.

Cheers,
Jose.
Reply all
Reply to author
Forward
0 new messages