Computing wrong Christoffel symbols with Product Manifold / Product Metric?

819 views
Skip to first unread message

Jackson Fliss

unread,
Nov 12, 2013, 3:47:11 PM11/12/13
to xa...@googlegroups.com
Hi.

I wanted to do a simple trial problem using the product manifold and product metric features. I have a metric that looks like

ds^2=(1/h[y])^2 (delta)_{\mu \nu} dx^\mu * dx^\nu + (h[y])^2 (delta_{ij}) dy^i * dy^j

(i.e. a flat manifold split into two pieces: one labelled by coordinates {x^\mu} and multiplied by one over a scalar h[y]^2 and another piece labelled by coordinates {y^i} multiplied by h[y]^2.  The scalar is only a function of the y coordinates) and I want to compute the Ricci scalar in terms of h.  This seems like something that xTensor should be able to handle well and it gives me an answer.  However when I check the answer by hand or with another package (such as diffgeo.m) the answer is not correct.  There seem to be factors off.

 I tried just computing the Christoffel symbols and it gets most of them right but the symbols with indices all from the x manifold (i.e. ChristoffelCDpq[\mu, -\nu,-\rho]) or the y manifold( ChristoffelCDpq[i,-j,-k]) it doesn't know what to do with.  Also with the symbols that do seem to evaluate well if I expand the product metric first (i.e. ExpandProductMetric[ ChristoffelCDpq[\mu,-\nu,-i], metricpq]) give me zero if I first do ChristoffelToMetric (i.e. ExpandProductMetric[ ChristoffelCDpq[\mu, \nu,-i] // ChristoffelToMetric , metricpq]).  Why should this be?

I have attached the notebook where this all goes down.  In it I call the x manifold Mp and y manifold Mq (I would want to generalize the result to integer dimensions p and q but in the notebook I take them both to be 2) and the product manifold Mpq.  The rest should follow.  If someone can explain to me what subtlety of xTensor I'm missing when I do this calculation I would very much appreciate it.

Other less pertinent questions:
*If I define my product manifold to be a product two one dimensional manifolds I get error messages about vBundles.  Does xTensor not support one dimensional manifolds?
*Does the dimension of the manifold have to be a predefined number or can I put a symbol (such as p) if I tell Mathematica that it's an integer above 0?

Thanks.

-Jackson
pqflatmetrics.nb

Leo Stein

unread,
Nov 12, 2013, 4:49:03 PM11/12/13
to Jackson Fliss, xAct Tensor Computer Algebra
Hi Jackson,

I think I can answer some of your questions. Some of it boils down to which indices are being used (the fact that tensors may now take indices in multiple VBundles is messy...).

You noticed that when you take a Christoffel from a product metric and use ExpandProductMetric, it is expanded into some derivatives when the indices come from different VBundles but in the situation when all three indices come from the same VBundle, it spits out another Christoffel symbol (appropriate to whatever indices it has). However when you say that the resulting Christoffel should vanish, this is not true—you have declared a metric which has not curvature, but the connection is still general (i.e. you can use polar coordinates on flat space and you need a nonvanishing Christoffel). This is why some of your expressions which you expected to vanish do not vanish.

If you want, you can tell DefMetric that FlatMetric->True and also tell it to use PD as connection. Then it will indeed make the Christoffel vanish.

Later in your notebook you use some expressions where there are contracted (dummy) indices which are from the product manifold. If you want to use ExpandProductMetric with those expressions and get the metric replaced properly, you will need to first use TraceProductDummy. For example, you can run
ChristoffelCDpq[i, -j, -k] // ChristoffelToMetric // TraceProductDummy
ExpandProductMetric[%, metricpq]
and get the expected result.

One-dimensional manifolds in xTensor sometimes have some issues (the canonicalizer tries to treat them specially but this causes problems with product manifolds). I don't exactly remember the status of 1d manifolds right now ... maybe only Jose remembers :)

If you want a symbolic dimension, you must tell xTensor that a symbol is a ConstantSymbol, e.g.
DefConstantSymbol[p]
DefManifold[Mp, p, {mu, nu, ...} ]

Hope this helps!

Cheers
Leo 


--
You received this message because you are subscribed to the Google Groups "xAct Tensor Computer Algebra" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xact+uns...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Jackson Fliss

unread,
Nov 12, 2013, 7:01:02 PM11/12/13
to xa...@googlegroups.com, Jackson Fliss
Leo,

Thanks that seems to alleviate the confusion I have about the Christoffel symbols.  So in terms of the Ricci scalar I can't just take ExpandProductMetric[RicciScalarCDpq[],metricpq]?  Is that why the answer I am getting not correct?

I suspect what I really should do before expanding the product metric is something like

RicciScalarCDpq[] // RiemannToChristoffel // ChristoffelToMetric // TraceProductDummy

However when I do this I get red parentheses surrounding the output and the indices of the product metric remain as dummies.  I'm assuming the red parentheses indicate some kind of error but I can't find what error this signifies.

Also a quick follow up: putting Curvature->False in DefMetric sets the connection as PD (in the notebook I just named my CD's PDq, and PDp and naively hoped for the best ;) ) correct?

Thanks for your help.

-Jackson

Jose

unread,
Nov 13, 2013, 1:37:08 AM11/13/13
to xa...@googlegroups.com, Jackson Fliss

One-dimensional manifolds in xTensor sometimes have some issues (the canonicalizer tries to treat them specially but this causes problems with product manifolds). I don't exactly remember the status of 1d manifolds right now ... maybe only Jose remembers :)

Well, it is still an unsolved open problem, and I don't yet know a consistent and robust way to solve it.

Jose. 

Jose

unread,
Nov 13, 2013, 2:02:34 AM11/13/13
to xa...@googlegroups.com, Jackson Fliss
Hi,


Thanks that seems to alleviate the confusion I have about the Christoffel symbols.  So in terms of the Ricci scalar I can't just take ExpandProductMetric[RicciScalarCDpq[],metricpq]?  Is that why the answer I am getting not correct?

If I'm understanding correctly what you are doing, that result should be correct.
 
I suspect what I really should do before expanding the product metric is something like

RicciScalarCDpq[] // RiemannToChristoffel // ChristoffelToMetric // TraceProductDummy

ExpandProductMetric assumes that all indices have been already broken. That is, you should never call ExpandProductMetric with indices a, b, c, ... in your case. Apart from that, there should not be any need to decompose curvature tensors into derivatives of other objects.

Note that ExpandProductMetric is prepared to return everything in terms of the Levi-Civita connections of the 2x2 metrics, and not in terms of partial derivatives, precisely to avoid introducing Christoffels of the block metrics.
 
However when I do this I get red parentheses surrounding the output and the indices of the product metric remain as dummies.  I'm assuming the red parentheses indicate some kind of error but I can't find what error this signifies.

No. Red parentheses are the Scalar[...] notation, used to isolate dummy indices of scalars. If you don't want red parentheses, use NoScalar. 

Also a quick follow up: putting Curvature->False in DefMetric sets the connection as PD (in the notebook I just named my CD's PDq, and PDp and naively hoped for the best ;) ) correct?

No. Curvature->False simply sets the curvature tensors equal to zero. You still can choose the connections.

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