Issue - xAct confusion between partial derivatives and curvatureless/torsionless covariant derivatives

1,290 views
Skip to first unread message

BillN

unread,
Feb 2, 2018, 1:18:13 AM2/2/18
to xAct Tensor Computer Algebra

I hate to be the school marm here, but as I'm going through the xAct instructions and introductions, there is a particular confusion that keeps being stated that could become an issue if accepted by the user.  This is that there is no difference between partial derivatives and covariant derivatives when the covariant derivatives have no curvature or torsion.  In xAct terminology, an example is the statement "ordinary ("partial") derivative operators are obtained as covariant derivatives with the options Curvature->False and Torsion->False" from Section 6.1 in xTensorDoc.nb.

 

Consider though the metric compatible covariant derivative for the (3+1) flat spacetime metric a[-b,-c], which is therefore torsionless and curvatureless.  The absolute metric becomes the Minkowski metric n[-b,-c] in the global inertial coordinates (ICs) that are available for the flat spacetime manifold.  The Christoffel symbol is zero in the global ICs, which indeed yields equal partial and covariant derivatives of tensors.  But in other coordinates, the Christoffel symbol is generally non-zero, so the covariant derivative of a tensor consists of its partial derivative plus the additional Christoffel symbol terms.  This concrete example demonstrates that for general covariant formulation, curvatureless/torsionless covariant derivatives are not the same as partial derivatives.

 

This confusion may have its origin from Wald who formally treats partial derivatives the same as covariant derivatives, which can lead to some "odd" interpretations such as considering the (Wald defined) Christoffel symbol to still be a tensor when one of its two “covariant derivatives” is the partial derivative (it is an actual tensor if both are actual covariant derivatives).  But this yields the "usual" single covariant derivative based Christoffel symbol, and for most physicists, if it does not obey the usual tensor transform law under a coordinate transform, it's not a tensor.  In addition, when considering tensors as geometrically invariant quantities on a manifold such as in MTW, a covariant derivative operator is a geometric invariant and therefore a tensor, whereas a partial derivative operator is not a geometrically invariant quantity and therefore not a tensor.  Even though we all use and appreciate Wald as a definitive source, all authors have their idiosyncrasies, and his is the interpretation of a partial derivative as a covariant derivative,or equivalently his conclusion that the usual Christoffel symbol is a tensor.  Pretty much every other sourced author does not agree with this interpretation, including MTW, Weinberg, Schutz, Carroll, and Einstein.  Perhaps MTW has the best interpretation of the usual Christoffel symbol consisting of a set of four tensors, which means it’s not a single geometrically invariant quantity that therefore obeys the usual tensor transform law as required to be considered a tensor.  Yes I understand Wald’s explanation about how the usual Christoffel symbol is a tensor using the coordinates it’s PD is defined for, and that changing coordinates means that a new Christoffel symbol tensor is generated using a new PD in the new coordinates, so the old coordinate Chrisoffel symbol is seen to be a tensor, but is simply not carried over to the new coordinate system.  That interpretation gives most physicists the hives.

 

So how does this viewpoint get us into trouble when using xAct?  Treating a partial derivative formally the same as a curvatureless and torsionless covariant derivative, if you use Implode on the PD operator applied to for instance a vector v[a], a mixed rank-2 tensor form Pv[a, -b] results (here the “P” represents the Greek partial derivative symbol).  Now you’re in trouble, since unlike the Implode of a covariant derivative operator applied to a vector which yields an actual tensor, Pv[a, -b] is not a tensor.  If you then applied an xCoba coordinate transform to Pv[a, -b] as if it were a tensor, the result would be in error.  This example demonstrates the need to not go “too far” in interpreting partial derivatives as curvatureless/torsionless covariant derivatives.  You can get away with that up to a point, but it will bite you in the end.

Jose

unread,
Feb 2, 2018, 1:33:13 AM2/2/18
to xAct Tensor Computer Algebra
Hi,

Thanks for your discussion of partial derivatives vs covariant derivatives in xAct.

It is true that xAct does not follow a standard approach, but I don't think its approach is intrinsically incorrect. It's just non-standard. The choice of this approach was motivated by the fact that the xTensor package for abstract computations was developed before xCoba (the package for component and coordinate computations), and xTensor always works with abstract (coordinate-independent) concepts. Hence the standard approach of associating partial derivatives to coordinate systems is not possible. Indeed, I took the idea from Wald's book, which is the main inspiration for the framework behind xTensor, of working with his "ordinary derivatives" and treat them as special cases of covariant derivatives. This works quite well, and once you get used to this nonstandard approach, I think it is also safer in computations.

If you really want to handle several coordinate systems simultaneously, then it's better to use xCoba, which will take care of the internal coordinate-system dependencies in the derivatives, densities, etc. Please, have a look at the concept of CTensor, which makes these computations easier.

If you think there is a particular computation that is incorrect, please send a notebook with actual code for a simple example demonstrating the issue, and we'll have a look at it.

Cheers,
Jose.

BillN

unread,
Feb 2, 2018, 10:45:04 AM2/2/18
to xAct Tensor Computer Algebra
Hi Jose,

Thank you for your thoughtful response.  I first want to express my gratitude for developing and providing xAct.  It is simply wonderful.  There is a great need for an abstract tensor software system that is extensive enough to allow for exploration of widely ranging gravitational theories, and xAct seems better suited to do this than anything else.  I'm beginning to appreciate the sheer volume of code that's involved to pull this off.  It seems the few others that do abstract formulation at all are more limited, and don't seem to provide for expression in the abstract tensor form (trying to figure out what is going on looking a some long computer code expression is a nightmare).   The way you designed it to allow for growth via additional contributed packages, is especially nice.  I was able to get up and running fast using xPrint, and I've got a complicated second order expansion problem coming up that I would not want to attempt without the xPert package.

I'm in complete agreement with you that there is no problem whatsoever with xTensor formally using partial derivatives the way it does, since there are no coordinate transformations involved.  Indeed, as you said, Wald's approach is actually safer in automated computations than the standard approach.  I'm working on a bimetric theory with the relation between the flat absolute spacetime metric and the curved gravitational metric taking a form similar to dRGT theories, and can tell you that xTensor is beautifully suited for this, especially for flipping back and forth between the partial derivative, flat metric covariant derivative, and the curved metric covariant derivative.  I just use a single manifold with one of the metrics the "active" one and the other the "frozen" one, and xTensor automatically and flawlessly takes care of everything while I'm focusing on the theory itself.

So my "partial derivative beef" (hehe) is simply one of interpretation, not actual functionality in xTensor.  It could lead users to accidentally misinterpret for instance the Implode of the partial derivative of a tensor, such as the Pv[a, -b] example I mentioned at the start of this thread.  If an expression containing this was subsequently ported into xCoba, would it not then erroneously treat this as an actual tensor if a coordinate transform were applied?  I guess what I'm getting at is that for the next update of xTensor (if you so deem to do another one), it might be helpful to mention in the instructions something like:  "Even though xTensor formally treats partial derivatives as curvatureless/torsionless covariant derivatives without error since no coordinate transformations are involved, users are reminded that the partial derivative of a tensor is not actually a tensor quantity in the "usual" way its covariant derivatives are, following the usual tensor transform law under coordinate transforms.  Appropriate caution should be exercised then when porting xTensor expressions onto xCoba, such as reverting any Imploded partial derivatives of tensors back into Exploded form."  Or something like that.

Many Thanks,
Bill

Jose

unread,
Feb 6, 2018, 10:35:14 AM2/6/18
to xAct Tensor Computer Algebra
Hi again,

Thank you for your kind words about xAct.

I agree this nonstandard use of Christoffels, and how it relates to the standard use, needs to be better explained in the docs.

Of course there will be new versions of xAct!

Cheers,
Jose.

magma

unread,
Feb 6, 2018, 7:35:59 PM2/6/18
to xAct Tensor Computer Algebra
Hi Bill,
thank you for crediting xPrint for your effortless "xPrinting  up" (hehe) the steep xAct learning curve.
I also take this occasion to inform you that a new version of xPrint will be released before the end of February.

I am very glad you started this thread about "the mathematics of xAct", because it is a topic I have been exploring since when I started using the suite and began collecting the bits and bytes that later formed xPrint.

In xAct there are some mathematical concepts that are  - if not original - at least rarely seen/discussed elsewhere.

I am preparing a notebook titled "The Mathematics of xAct" to help people with an "MTW background" (like myself)) understand and appreciate the elegant mathematical ideas supporting xAct. Unfortunately it is not yet quite ready for distribution.

In the meantime I invite you to reexamine - in xAct - the innovative concept of "parallel derivative" - PD -  (partial derivatives being a special case) and Christoffel tensor. They are false friends: you think you know them (they are not tensors, you claim), but in fact they are a different kind of beast from the usual MTW concepts sharing - unfortunately - similar sounding names.  

It sometimes happens in Mathematics that a generalization of a well-known concept shares the same name of the older and simpler concept.

Another point that I would like to stress is that any sufficiently complex notation system is bound to have some logical ambiguities which can only be resolved by a convention. Tensor notation, in xAct in particular, is no exception.

A nice non-mathematical example might be this: you are in a shopping mall looking for the restrooms. If you see a sign with a left arrow it means that you have to go left, if it has a right pointing arrow you have to go right, but if it has an up pointing arrow....? Do you go up one floor? No , by convention it generally means that you have to go straight on. What would you do if the sign had a down pointing arrow? Would you retrace your steps and go back or would you look for a way to go down one floor? Generally if they want you to retrace your steps they would use a "u-turn sign". Another silly convention. So the down pointing arrow is rarely used. What a waste. Now suppose you have a sign saying restrooms, then an icon of a lift and then an up pointing arrow. What on Earth would that mean? Go straight on to the lift and then press an unspecified button to reach the restrooms or...Do you see my point?

So in xAct it is quite possible that there are expressions that you might find ambiguous but xAct certainly will parse them in a predictable way. What rests to be seen is whether these evaluations are always mathematically consistent.
   
If you have a specific example which you would like to discuss in this group, I invite you , like Jose did, to express your thoughts in a notebook and attach it to your post

Ciao,
Alessandro

BillN

unread,
Feb 6, 2018, 11:12:55 PM2/6/18
to xAct Tensor Computer Algebra
HeHe.  I loved the restroom example.  It makes the point beautifully.

I too grew up with MTW as well as Weinberg.  Wald is similar though in most respects, with use of the abstract index notation to represent MTW's geometric quantities instead of bold print and slots, but also "ready made" for Weinberg's coordinate component formulation by just changing indexes from Latin to Greek (with Wald's notation then the "best of both worlds").  Even his means of defining Christoffel symbols is not so far out, especially when working in bimetric theory (as I do) where a Christoffel symbol we commonly work with is an actual tensor (in the "usual" coordinate transform and geometric invariant sense) formed from the difference of the covariant derivative operators of the gravitational and absolute metrics.  And I agree there is nothing at all wrong with Wald formally treating partial derivatives as if they were covariant derivatives, and therefore treating the resultant Christoffel symbols as if they were tensors, just so long as you understand what he means when he interprets these as "tensors" in a non-traditional way.  So I thought it might be helpful to point this out in the instructions to avoid confusion, such as a user mistakenly taking a partial derivative containing xAct Christoffel symbol and coordinate transforming it on paper using the usual tensor transform law.

With xTensor following Wald's approach, I have not seen a single problem arise since xTensor provides abstract index formulation exclusively and therefore never applies coordinate transforms.  So my only concern was when applying coordinate transforms in xCoba.  But it is becoming clear to me that xCoba does this flawlessly, so internal to its code, it certainly knows how to transform Wald's Christoffel symbols properly.  This seems be done with the aid of a wholly new beast, the "parallel derivative" as you pointed out.  This seems to be an animal exclusive to xAct, specifically to xCoba, as to my knowledge it does not appear to show up in Wald (just the usual "partial derivative" and "parallel transport," but no "parallel derivative").  So I'm still getting a handle on this new thing.  I think some of my confusion was not realizing that xAct does not then wholly follow Wald's formulation.

So I'm waiting with baited breath for your upcoming publication "The Mathematics of xAct."

Regards,
Bill

BillN

unread,
Feb 9, 2018, 4:01:43 PM2/9/18
to xAct Tensor Computer Algebra
Mea culpa.

Now I understand that xAct's "parallel derivative" and Wald's "ordinary derivative" are one and the same thing in theory, not completely different as I thought above.  Man Wald's explanation is cryptic (I've got to blame somebody for my stupidity).  Wald simply takes ordinary (partial) derivative of a tensor in any given coordinates, and then simply forms a tensor with components equal to the partial derivative components.  I guess the astute reader (which I'm evidently not) is supposed to infer from that, that he really means it's to be treated as a tensor following the usual coordinate transform law, and therefore it really is a tensor since it does.  He just never comes out and states this (or equivalently that it is a geometrically invariant quantity).  The giveaway is that later in the same paragraph (top of pg. 32), Wald states that in new coordinates, this tensor is not going to be equal to taking the partial derivative of the undifferentiated tensor in the new coordinates.  So the "astute reader requirement" is still in effect which means I missed the boat again.  Later (pg. 34), this same set up is applied to the Christoffel symbol formed via the difference of a typical covariant derivative operator and the ordinary derivative operator, yielding then a Christoffel symbol that is really a tensor following the usual tensor transform law, but again without flat out saying this (only that it will then differ from the new Christoffel symbol based on the new coordinates, so the tensor transform law does not apply between the Christoffel symbols in the two coordinate systems).  So even though Wald then calls the "ordinary derivative" a "derivative operator," it's a stretch to see it as a covariant derivative operator in the usual sense, though since his ordinary derivative operator follows the usual tensor transform law, it somehow must be some sort of covariant derivative.

This is where the clever folks at xAct come in, adding in the additional required structure to formally give Wald's "ordinary derivative" as a covariant derivative.  They set it up as your garden variety covariant derivative, but specified to have no curvature and no torsion.  Since it has no curvature, it commutes with itself just as partial derivatives do.  Since it has no torsion, its Christoffel symbol is symmetric.  But even curvatureless/torsionless covariant derivatives yield non-zero Christoffel symbols in general coordinates when applied to tensors, whereas the ordinary (partial) derivatives of a tensor do not have any Christoffel symbols.  Now the compatible covariant derivative of a flat metric also has no curvature and no torsion.  As is well understood, there always exists global coordinate systems where a flat metric will be constant throughout.  Therefore, its compatible covariant derivative will yield a zero valued Christoffel symbol in these "constant coordinates (CCs)."  In the CCs of a flat metric then, its covariant derivative applied to a tensor is simply the tensor's partial derivative.  Drum role please:  In any given general coordinate system, the partial derivative of a tensor is formally identical to the compatible covariant derivative of a flat metric for which the given coordinate system is a constant coordinate system.  Since we are interested in the covariant derivative only and not the flat metric itself, it suffices to simply specify that the covariant derivative has zero curvature and torsion in order for it to be considered to be the compatible derivative of a flat metric, without bothering to ever specify the flat metric itself.  The flat metric though is "specified up to a constant metric" by setting its covariant derivative equal to the partial derivative in the given coordinates used, yielding then zero valued Christoffel symbols and therefore an inferred constant metric value over the given coordinates.  Finally, we can "throw away" the notion of an "underlying" flat metric actually existing altogether, having used it simply as a "guide" to understanding that for any given general coordinate system, there always exists a curvatureless/torsionless covariant derivative operator such that its application on tensors will yield a zero valued Christoffel symbol, and therefore a covariant derivative equal to the partial derivative.  The "parallel derivative (PD)" operator formally implemented in the xAct system, is precisely this animal.

Note that once set up in the above manner for a given coordinate system, its application on a tensor yields another tensor in the usual sense, meaning that it will coordinate transform using the usual tensor transform law applicable to covariant derivatives.  As a result, non-zero Christoffel symbols will emerge when the PD operator applied to a tensor is coordinate transformed, just as is the case for flat metric compatible covariant derivatives once transferred out of "constant coordinates" (in which the flat metric is constant).  This is not the same then as the PD operator "newly" applied to the tensor as given in the new coordinates, since when the PD operator is "newly" applied, the new coordinates are treated as the "constant coordinates" for a new "underlying" flat metric generating its compatible covariant derivative, therefore yielding equality with application of the partial derivative in the new coordinates.  School marm time (it's so easy to be a Monday morning quarterback, hehe).  This is more like the explanation that Wald "should" have given for the creature that he invented, as behooves any author that utilizes a whole new quantity as the foundation for all else that follows.  The xAct documentation more clearly discusses the PD operator in terms of it beiing a curvatureless/torsionless covariant derivative, giving most pieces of the above explanation when the "PD" operator is discussed.  Alessandro's upcoming "The Mathematics of xAct" I'm sure will provide the most comprehensive discussion available on this.

For the "casual user" of xAct (as if there was such a thing), the only "error" that could occur is if xCoba is applied to transform the PD applied to a tensor, and the user does not recognize that the xAct PD is not simply a partial derivative, but is indeed an actual covariant derivative.  The additional Christoffel symbol terms that appear under transform would provide a result that such a casual user would be considered erroneous, since this would not be the same as the partial derivative in the new coordinates.  However, for our mythical casual user considering the "parallel derivative" operator PD to simply be the ordinary partial derivative, he/she would not attempt to transform just the partial derivative anyway, instead transforming the "usual" (explicitly looking) covariant derivatives only.  The key saving grace for such "explicit" covariant derivatives, is that they can be interpreted in the "usual" fashion without ever knowing that their contained partial derivatives and their contained Christoffel symbols are both separately treated as tensors "internally" by xAct (since the PD is a tensor, so is the Christoffel symbol formed from the difference of the utilized covariant derivative and the PD, as in Wald).  This is because the displayed partial derivative actually is the covariant PD and generates Christoffel symbols under coordinate transform, and the displayed Chritoffel symbol is actually the covariant derivative and PD difference based Christoffel tensor, with its contained "subtracted" PD operator generating equal and opposite Christoffel symbols to the ones generated by the displayed partial derivative.  The "internal cancellation" of the PD based Christoffel symbols result in the entire covariant derivative not only displaying in the same form as in the "old" coordinates, its value equals the displayed partial derivative in the new coordinates, plus the displayed Christoffel symbol terms when computed in the "traditional" manner.  So the casual user is "none the wiser" about how xAct "internally" performed the transform in terms of PD and Christoffel tensors.

For "deep background," this is closely related to an "old trick" from bimetric theory.  In "traditional" bimetric theory (such as Rosen's famous bimetric theory), one of the metrics is the flat spacetime metric, and the other is the curved gravitational metric (some "metric relation" typically relates the two, such as in dRGT theories).  So there is always the global Cartesian coordinates to work with in which the flat metric is the constant Minkowski metric.  Once in the global CCs, the partial derivatives contained in any gravitational metric based covariant derivatives are converted to the covariant derivatives of the flat metric since its Christoffel symbols are zero in global CCs.  In addition, the gravitational metric Christoffel symbols are converted to the tensor difference of the gravitational and flat metric Christoffel symbols, again since the flat Christoffel symbols are zero.  At this point, easy "by hand" coordinate transforms of the gravitational covariant derivatives may be performed since all the terms are now tensors, and due to the "internal cancellation" of the flat metric Christoffel symbols (just like above), once in the new coordinates the gravitational covariant derivatives may again be put into the "traditional" form.  I'm not a scholar, but I think this technique was first developed by Rosen back in the 30's, with his the "first" bimetric theory.  Because of this "internal cancellation" property, this means that in any coordinates, if the gravitational metric covariant derivatives are expanded out into exclusive partial derivative terms (including converting the Christoffel symbols into gradients of the gravitational metric), all the partial derivative "commas" (" , ") may simply be replaced by the " | " symbol denoting covariant derivatives of the flat metric, again yielding a form where each term is now a tensor.  And yes, the resulting Christoffel symbol using this technique is again the difference of the gravitational and flat metric Christoffel symbols.  So this is an "old" technique, well familiar to bimetric theorists.  (Having done nothing but bimetric theory for almost two decades now, you would think I would have immediately recognized what Wald was doing, so when I claim that his explanation is cryptic, I mean #%$#&#$ cryptic!, hehe).

Regards,
Bill

 

Jose

unread,
Feb 21, 2018, 11:02:57 AM2/21/18
to xAct Tensor Computer Algebra
Hi,


On Friday, February 9, 2018 at 10:01:43 PM UTC+1, BillN wrote:
Mea culpa.

Now I understand that xAct's "parallel derivative" and Wald's "ordinary derivative" are one and the same thing in theory, not completely different as I thought above.

Not exactly. In Wald's book an ordinary derivative is flat (no curvature) and torsionless. In xCoba the "parallel derivatives" are flat but can have torsion. If they are associated (or "parallel") to a coordinated frame then they are torsionless, but if the frame is not coordinated then they have torsion, which is, modulo sign, equal to the commutators of the frame vectors.

xAct uses PD as meaning "partial derivative" or "parallel derivative" correspondingly.

For example:

In[1]:= << xAct`xCoba`

In[2]:= DefManifold[M, 4, {a, b, c, d, e}]

In[3]:= DefBasis[B, TangentM, {0, 1, 2, 3}]

In[4]:= Riemann[PDB][-a, -b, -c, d]
Out[4]= 0

In[5]:= Bracket[Basis[-{a, B}, c], Basis[-{b, B}, d]][e]
Out[5]= - TorsionPDB[e, {-a, -B}, {-b, -B}]

There you have the flat "parallel derivative" PDB, with nonzero torsion TorsionPDB.

Recall that all these considerations are local. xAct does not yet try to handle global information, in spite of using the name "Manifold", etc.

 
  Man Wald's explanation is cryptic (I've got to blame somebody for my stupidity).  Wald simply takes ordinary (partial) derivative of a tensor in any given coordinates, and then simply forms a tensor with components equal to the partial derivative components.  I guess the astute reader (which I'm evidently not) is supposed to infer from that, that he really means it's to be treated as a tensor following the usual coordinate transform law, and therefore it really is a tensor since it does.  He just never comes out and states this (or equivalently that it is a geometrically invariant quantity).  The giveaway is that later in the same paragraph (top of pg. 32), Wald states that in new coordinates, this tensor is not going to be equal to taking the partial derivative of the undifferentiated tensor in the new coordinates.  So the "astute reader requirement" is still in effect which means I missed the boat again.  Later (pg. 34), this same set up is applied to the Christoffel symbol formed via the difference of a typical covariant derivative operator and the ordinary derivative operator, yielding then a Christoffel symbol that is really a tensor following the usual tensor transform law, but again without flat out saying this (only that it will then differ from the new Christoffel symbol based on the new coordinates, so the tensor transform law does not apply between the Christoffel symbols in the two coordinate systems).  So even though Wald then calls the "ordinary derivative" a "derivative operator," it's a stretch to see it as a covariant derivative operator in the usual sense, though since his ordinary derivative operator follows the usual tensor transform law, it somehow must be some sort of covariant derivative.

Yes, but remember that all this applies to the case in which you have a coordinated frame.
 

This is where the clever folks at xAct come in, adding in the additional required structure to formally give Wald's "ordinary derivative" as a covariant derivative.  They set it up as your garden variety covariant derivative, but specified to have no curvature and no torsion.  Since it has no curvature, it commutes with itself just as partial derivatives do.  Since it has no torsion, its Christoffel symbol is symmetric.  But even curvatureless/torsionless covariant derivatives yield non-zero Christoffel symbols in general coordinates when applied to tensors, whereas the ordinary (partial) derivatives of a tensor do not have any Christoffel symbols.

Yes. The idea is that given a flat, torsionless covariant derivative, there are coordinate systems in which such derivative can be locally expressed as a partial derivative (zero Christoffels). But in other coordinate systems there will be Christoffel terms.
 
  Now the compatible covariant derivative of a flat metric also has no curvature and no torsion.  As is well understood, there always exists global coordinate systems where a flat metric will be constant throughout.  Therefore, its compatible covariant derivative will yield a zero valued Christoffel symbol in these "constant coordinates (CCs)."  In the CCs of a flat metric then, its covariant derivative applied to a tensor is simply the tensor's partial derivative.  Drum role please:  In any given general coordinate system, the partial derivative of a tensor is formally identical to the compatible covariant derivative of a flat metric for which the given coordinate system is a constant coordinate system.  Since we are interested in the covariant derivative only and not the flat metric itself, it suffices to simply specify that the covariant derivative has zero curvature and torsion in order for it to be considered to be the compatible derivative of a flat metric, without bothering to ever specify the flat metric itself.  The flat metric though is "specified up to a constant metric" by setting its covariant derivative equal to the partial derivative in the given coordinates used, yielding then zero valued Christoffel symbols and therefore an inferred constant metric value over the given coordinates.  Finally, we can "throw away" the notion of an "underlying" flat metric actually existing altogether, having used it simply as a "guide" to understanding that for any given general coordinate system, there always exists a curvatureless/torsionless covariant derivative operator such that its application on tensors will yield a zero valued Christoffel symbol, and therefore a covariant derivative equal to the partial derivative.  The "parallel derivative (PD)" operator formally implemented in the xAct system, is precisely this animal.

 

Note that once set up in the above manner for a given coordinate system, its application on a tensor yields another tensor in the usual sense, meaning that it will coordinate transform using the usual tensor transform law applicable to covariant derivatives.  As a result, non-zero Christoffel symbols will emerge when the PD operator applied to a tensor is coordinate transformed, just as is the case for flat metric compatible covariant derivatives once transferred out of "constant coordinates" (in which the flat metric is constant).  This is not the same then as the PD operator "newly" applied to the tensor as given in the new coordinates, since when the PD operator is "newly" applied, the new coordinates are treated as the "constant coordinates" for a new "underlying" flat metric generating its compatible covariant derivative, therefore yielding equality with application of the partial derivative in the new coordinates.  School marm time (it's so easy to be a Monday morning quarterback, hehe).  This is more like the explanation that Wald "should" have given for the creature that he invented, as behooves any author that utilizes a whole new quantity as the foundation for all else that follows.  The xAct documentation more clearly discusses the PD operator in terms of it beiing a curvatureless/torsionless covariant derivative, giving most pieces of the above explanation when the "PD" operator is discussed.  Alessandro's upcoming "The Mathematics of xAct" I'm sure will provide the most comprehensive discussion available on this.

For the "casual user" of xAct (as if there was such a thing), the only "error" that could occur is if xCoba is applied to transform the PD applied to a tensor, and the user does not recognize that the xAct PD is not simply a partial derivative, but is indeed an actual covariant derivative.  The additional Christoffel symbol terms that appear under transform would provide a result that such a casual user would be considered erroneous, since this would not be the same as the partial derivative in the new coordinates.  However, for our mythical casual user considering the "parallel derivative" operator PD to simply be the ordinary partial derivative, he/she would not attempt to transform just the partial derivative anyway, instead transforming the "usual" (explicitly looking) covariant derivatives only.  The key saving grace for such "explicit" covariant derivatives, is that they can be interpreted in the "usual" fashion without ever knowing that their contained partial derivatives and their contained Christoffel symbols are both separately treated as tensors "internally" by xAct (since the PD is a tensor, so is the Christoffel symbol formed from the difference of the utilized covariant derivative and the PD, as in Wald).  This is because the displayed partial derivative actually is the covariant PD and generates Christoffel symbols under coordinate transform, and the displayed Chritoffel symbol is actually the covariant derivative and PD difference based Christoffel tensor, with its contained "subtracted" PD operator generating equal and opposite Christoffel symbols to the ones generated by the displayed partial derivative.  The "internal cancellation" of the PD based Christoffel symbols result in the entire covariant derivative not only displaying in the same form as in the "old" coordinates, its value equals the displayed partial derivative in the new coordinates, plus the displayed Christoffel symbol terms when computed in the "traditional" manner.  So the casual user is "none the wiser" about how xAct "internally" performed the transform in terms of PD and Christoffel tensors.

For "deep background," this is closely related to an "old trick" from bimetric theory.  In "traditional" bimetric theory (such as Rosen's famous bimetric theory), one of the metrics is the flat spacetime metric, and the other is the curved gravitational metric (some "metric relation" typically relates the two, such as in dRGT theories).  So there is always the global Cartesian coordinates to work with in which the flat metric is the constant Minkowski metric.  Once in the global CCs, the partial derivatives contained in any gravitational metric based covariant derivatives are converted to the covariant derivatives of the flat metric since its Christoffel symbols are zero in global CCs.  In addition, the gravitational metric Christoffel symbols are converted to the tensor difference of the gravitational and flat metric Christoffel symbols, again since the flat Christoffel symbols are zero.  At this point, easy "by hand" coordinate transforms of the gravitational covariant derivatives may be performed since all the terms are now tensors, and due to the "internal cancellation" of the flat metric Christoffel symbols (just like above), once in the new coordinates the gravitational covariant derivatives may again be put into the "traditional" form.  I'm not a scholar, but I think this technique was first developed by Rosen back in the 30's, with his the "first" bimetric theory.  Because of this "internal cancellation" property, this means that in any coordinates, if the gravitational metric covariant derivatives are expanded out into exclusive partial derivative terms (including converting the Christoffel symbols into gradients of the gravitational metric), all the partial derivative "commas" (" , ") may simply be replaced by the " | " symbol denoting covariant derivatives of the flat metric, again yielding a form where each term is now a tensor.  And yes, the resulting Christoffel symbol using this technique is again the difference of the gravitational and flat metric Christoffel symbols.  So this is an "old" technique, well familiar to bimetric theorists.  (Having done nothing but bimetric theory for almost two decades now, you would think I would have immediately recognized what Wald was doing, so when I claim that his explanation is cryptic, I mean #%$#&#$ cryptic!, hehe).

A book that explains these matters in a global (but parallelizable) case is Bishop & Goldberg, second half of chapter 5. Again, recall that xAct assumes that considerations are local, so things are easier. The terminology is different from that in xAct.

Cheers,
Jose.
 

Regards,
Bill

 

BillN

unread,
Feb 21, 2018, 2:51:19 PM2/21/18
to xAct Tensor Computer Algebra
Hi,

Thanks Jose for going through my lengthy write-up.  The need to use non-coordinate bases doesn't arise much in my bimetric work (global Cartesian coordinates are favored for physical evaluation), so I don't pay much attention to them.  Since Wald stuck to coordinates only in his discussion, I just went along with that (that's my excuse and I'm sticking with it).  Someone else had emailed me as well about wanting to add in bases to the discussion. 

Please correct me if I"m wrong on this, but it appears that in theory, Wald's defined "ordinary/partial derivative operators" are indeed the same as xCoba's "parallel derivatives" if applied to non-coordinate bases, with the parallel derivative torsion terms the same as the commutation coefficients that generally arise any time covariant derivatives are applied to non-coordinate bases (such as in MTW), in this case Wald's covariant partial derivative operators.  But just as in the coordinate case when you had to add in a lot of formal structure to actually implement Wald's partial derivatives in practice (such as setting it up as an xTensor covariant derivative without curvature or torsion), this was "doubled down on" when needing to then extend the structure to include non-coordinate bases in xCoba.  Since Wald was not considering non-coordinate bases in his discussion, then yes, xCoba's "parallel derivatives" are certainly different animals than Wald's partial derivatives, only reducing to same when coordinate bases are used.  Indeed, it seems you all basically had to start "from scratch" to find the best covariant derivative operator that would reduce to the coordinate basis partial derivative, by analogy ending up with a curvatureless covariant derivative operator that yields zero when operating on the non-coordinate basis vectors individually similar to how the partial derivative operators work with their coordinate bases, but also introducing the "cross basis vectors" commutation coefficients (torsions) since it is formally to be a covariant derivative.  That was a feat!

Regards,
Bill

BillN

unread,
Feb 23, 2018, 11:08:47 AM2/23/18
to xAct Tensor Computer Algebra
Jose, now I'm really confused.

I was running under the assumption that the xCoba parallel derivatives reduce to the xTensor "fiducial derivatives" when coordinates are used.  So I set up a chart, and then took the difference of its parallel derivative PDchart applied to a vector ( PDchart[-c][v[b]] ), and its fiducial derivative PD applied to the same vector ( PD[-c][v[b]] ).  To my surprise, this difference is not zero (even with running ToCanonical or Simplification).  Do I need to apply this difference to a specified tensor field (components specified) for the zero result to occur, or am I way off and need to get your recommended reference (or Alessando's upcoming paper)?

I also was running under the assumption that for a (non-coordinate) basis, the Torsion tensor for the parallel derivative is equal to its sign reversed commutation coefficient as contained within the Christoffel tensor.  So when its Christoffel tensor is added to its Torsion tensor, the result ChristoffelPDncbasis[b, -c, -d] + TorsionPDncbasis[b, -c, -d] should be a symmetric Christoffel tensor (presumably the zero valued fiducial derivative Christoffel tensor).  But when I subtract this from itself with indices reversed, its still non-zero instead of the zero value expected for a symmetric tensor.  I tried the "subtracted" case ChristoffelPDncbasis[b, -c, -d] - TorsionPDncbasis[b, -c, -d] as well to see if the Torsion has the same sign as the commutation coefficient, but again got a non-zero result when checking its symmetry.  So similar to above vector case, is this also not going to zero out unless I set up some component values?

Thank you so much for taking the time to go though this with me (I must have worn you out by now).  I'm using xAct for some key elements of my work (hopefully to be submitted before the year is out, with of course you et. al. acknowledged), so it is vital that I be able to correctly interpret it.

Regards,
Bill

Jose

unread,
Feb 25, 2018, 6:31:50 PM2/25/18
to xAct Tensor Computer Algebra


On Friday, February 23, 2018 at 5:08:47 PM UTC+1, BillN wrote:
Jose, now I'm really confused.

I was running under the assumption that the xCoba parallel derivatives reduce to the xTensor "fiducial derivatives" when coordinates are used.

Well, I'd say is the other way round: the "fiducial" PD derivative is like a particular PDchart in xCoba, for a fixed but unspecified chart (formally known as AIndex in xTensor, but that doesn't matter). The PD derivative (which is flat and torsionless) is needed to have the Christoffel[cd, PD] objects, which are renamed as Christoffelcd, etc, simulating the standard one-derivative Christoffels.

xTensor is purely abstract (non-coordinated) so it cannot really handle charts. This "fiducial chart" is all it will do, which is very little. In particular, because there is only one (part of a) chart, then there is no possible notion of change of chart. You need xCoba for that.
 
  So I set up a chart, and then took the difference of its parallel derivative PDchart applied to a vector ( PDchart[-c][v[b]] ), and its fiducial derivative PD applied to the same vector ( PD[-c][v[b]] ).  To my surprise, this difference is not zero (even with running ToCanonical or Simplification).

It can never be zero. It will just be a Christoffel term. The difference of covariant derivatives of the same tensor is always a bunch of Christoffel terms:

In[2]:= DefManifold[M, 4, {a, b, c, d}]
In[3]:= DefChart[S, M, {0, 1, 2, 3}, {x[], y[], z[], t[]}]
In[4]:= DefTensor[v[a], M]

In[5]:= ChangeCovD[PDS[-a][v[b]] - PD[-a][v[b]]] // ScreenDollarIndices
Out[5]= ChristoffelPDS[b, -a, -c]   v[c]

 
  Do I need to apply this difference to a specified tensor field (components specified) for the zero result to occur, or am I way off and need to get your recommended reference (or Alessando's upcoming paper)?

PD is a special case that mimics a bit of xCoba inside xTensor, for the very particular case in which you only have one particular coordinate system, and you don't care about the names of the chart scalars. If you want more than that, then you need the full power of xCoba, and you shouldn't use PD, which is so limited.
 

I also was running under the assumption that for a (non-coordinate) basis, the Torsion tensor for the parallel derivative is equal to its sign reversed commutation coefficient as contained within the Christoffel tensor.

Yes (though I'm not sure what that "as contained" mean).
 
  So when its Christoffel tensor is added to its Torsion tensor, the result ChristoffelPDncbasis[b, -c, -d] + TorsionPDncbasis[b, -c, -d] should be a symmetric Christoffel tensor (presumably the zero valued fiducial derivative Christoffel tensor).  But when I subtract this from itself with indices reversed, its still non-zero instead of the zero value expected for a symmetric tensor.  I tried the "subtracted" case ChristoffelPDncbasis[b, -c, -d] - TorsionPDncbasis[b, -c, -d] as well to see if the Torsion has the same sign as the commutation coefficient, but again got a non-zero result when checking its symmetry.  So similar to above vector case, is this also not going to zero out unless I set up some component values?

The relation is this:

In[7]:= DefBasis[B, TangentM, {0, 1, 2, 3}]

In[8]:= ChangeTorsion[Torsion[PDB][a, -b, -c], PDB, PD]
Out[8]= ChristoffelPDB[a, -b, -c] - ChristoffelPDB[a, -c, -b]

or if you want

In[9]:= ChangeTorsion[Torsion[PDB][a, -b, -c] - ChristoffelPDB[a, -b, -c] + ChristoffelPDB[a, -c, -b], PDB, PD]
Out[9]= 0

 

Thank you so much for taking the time to go though this with me (I must have worn you out by now).  I'm using xAct for some key elements of my work (hopefully to be submitted before the year is out, with of course you et. al. acknowledged), so it is vital that I be able to correctly interpret it.

Cheers,
Jose.
 

Regards,
Bill

BillN

unread,
Feb 26, 2018, 3:27:26 AM2/26/18
to xAct Tensor Computer Algebra
Thanks again Jose.

Your detailed explanation with code examples clarifies parallel derivatives a lot for me.  I don't have much need to work outside of coordinates, so I definitely needed a leg up to understand xCoba's non-standard but powerful means of handling derivatives for non-coordinate bases.  As per your recommendation, I obtained Bishop & Goldberg and will go through Chapter 5 (have already skimmed through Chapter 0 as per their recommendation to pick up on the notation), keeping in mind the "global" vs. "local" difference between their use and xAct's as you pointed out. 

Regards,
Bill 

BillN

unread,
Mar 21, 2018, 2:06:30 PM3/21/18
to xAct Tensor Computer Algebra
Hi,

Now I think I've got it.  My confusion three entries back was due to mixing together xTensor's abstract "partial derivatives" and xCoba's basis based "parallel derivatives," not a good idea as Jose pointed out.  Well, that's what I get for not spending enough time going through the xCobaDoc examples to learn not to do this.  By sticking to xCoba's "parallel derivatives" whenever working with bases (including charts then), as well as basis formed covariant derivatives, then everything works as I originally understood it to be earlier in this thread (you mean I was actually right for once!).  In any basis, the curvatureless PDbasis does indeed reduce to the partial derivative if the basis is obtained from a chart, otherwise having additional torsion if the basis is a non-coordinate one.  The Christoffel symbol tensor formed from the difference of a covariant derivative and the PDbasis derivative (Christoffel[CD, PDbasis]), has the component values of the "traditional" non-tensor Christoffel symbol for the covariant derivative, again as given in the utilized basis.  For metric based covariant derivatives, the Christoffel symbol values include the "usual" metric derivative terms, plus the commutation coefficients that arise when non-coordinate bases are used.  These commutation coefficients are exactly the sign reversed PDbasis torsions obtained from subtracting an xCoba covariant derivative Christoffel tensor Christoffel[CD, PDbasis] from its indice reversed self (see MTW 8.34 compared with corresponding xCobaDoc examples).  Using metric based covariant derivatives in coordinate based bases then (i.e., using charts), the vanishing torsion yields Christoffel[CD, PDbasis] equal to the traditional non-coordinate metric derivative based Christoffel symbol.

So if I want, I can indeed act as a "casual user" that does not pay any attention to the "inner workings" of how xAct always uses PDbasis to form Christoffel tensors as opposed to the traditional non-tensor Christoffel symbols, since in any basis used the component values for the two will indeed be the same.  For the same reason, when working with charts, I don't have to pay attention to xAct using tensor covariant "parallel derivatives" in place of traditional non-covariant partial derivatives, since again their component values will be the same in any charts used.  Only if I transformed from one basis/chart to the next but explicitly "went out of my way" to obtain the tensor transform values based on use of the original basis PDbasis, would I notice that the "Christoffels" and "partial derivatives" where transforming as tensors as opposed to their traditional non-tensor transform laws, thereby believing there was an error (the basis for my original point in this thread).  But if I instead went with xAct's "default" transformation in which the new basis "Christoffels" and "partial derivatives" are based on the "new" PDbasis specifically formed for the new coordinates (in the same way that Wald discusses this), then a comparison of the component values of the "Christoffels" and "derivatives" show that they indeed relate in the traditional non-coordinate way.  So as long as one uses explicitly covariant formulations, with use in any basis the "default" where all (basis dependent) quantities are exclusively given with that basis (such as PDbasis), then all covariant derivative Christoffel symbols and partial derivatives may be interpreted in their usual non-tensor fashion, including their component values.  The only caveat is the need to use "PDbasis" in some of the covariant derivative commands (such as Christoffel[CD, PDbasis]), forcing one to have to pay some attention to the "inner workings" of xAct, which is how I got bogged down with this issue in the first place (hehe, got my whine in).

Thanks all for all of the kind and thoughtful feedback on this issue.  It was a great help.

Bill 

BillN

unread,
Mar 22, 2018, 9:29:21 PM3/22/18
to xAct Tensor Computer Algebra
Hi Jose,

I did look through Chapter 5 of Bishop and Goldberg.  There is similar material in Chapter 6 of "Geometrical methods of mathematical physics" by Schutz, defining and studying both the torsion tensor and the (non-coordinate basis) commutation coefficients.  A better title for Schutz's book would be "Differential geometry for physicists," because that's exactly what it is, using notation similar to that used in Wald and MTW, but covering any differential geometry that most physicists would ever want to know about (this is perhaps the most popular "differential geometry" book that physics departments use if they teach it).  It still covers the same material as Bishop and Goldberg for the most part, but less abstractly and without the full blown rigor that mathematicians require.

Thanks again for all your help.

Bill
Reply all
Reply to author
Forward
0 new messages