Gradient of a tensor in cylindrical coordinates

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
5 replies · 5K views
hanson
Messages
312
Reaction score
0
Hi all, I have been struggling (really) with this and hope someone can help me out.

I would just like to compute the gradient of a tensor in cylindrical coordinates.
I thought I got the right way to calculate and successfully computed several terms and check against the results given by wikipedia (see attached images).
However, there are some terms I computer are different from what's given in wikipedia.

For example the following term:
[tex]\nabla S = ... +\frac{1}{r}\left[ \frac{\partial S_{\theta z}}{\partial \theta} + S_{rz}\right] e_{\theta} \otimes e_{z} \otimes e_{\theta}+...[/tex]

The formula I use is the following
[tex]\nabla S = \left[ \frac{\partial S_{ij}}{\partial \xi^k} - \Gamma^l_{ki} S_{lj}-\Gamma^l_{kj}S_{il}\right] g^i \otimes g^j \otimes g^k[/tex]

Denoting [tex]1:r, \ 2:\theta, 3:z[/tex], I know that
[tex] S_{11} = S_{rr}, \ S_{12} = r S_{r \theta}, \ S_{13} = S_{rz} [/tex]
[tex] S_{21} = r S_{\theta r}, \ S_{22} = r^2 S_{\theta \theta}, \ S_{23} = r S_{\theta z} [/tex]
[tex] S_{31} = S_{z r}, \ S_{32} = r S_{z \theta}, \ S_{33} = S_{z z} [/tex]

And
[tex] g^1 = e_r, \ g^2 =\frac{1}{r} e_{\theta}, \ g^3 = e_{z}[/tex]

And the non-zeros Christoffel symbols are:
[tex] \Gamma^2_{12} = \frac{1}{r}, \ \Gamma^1_{22} = -r[/tex]

Then, using the definition above, I naively think that the term I mentioned above in the very beginning will be computed as
[tex] \begin{align}<br /> (\nabla S)_{232} &= \left( \frac{\partial S_{23}}{\partial \xi^2}-\Gamma^1_{23} S_{13}-\Gamma^2_{23} S_{23}-\Gamma^3_{23} S_{33}-\Gamma^1_{22} S_{21}-\Gamma^2_{22} S_{22}-\Gamma^3_{22} S_{23} \right) g^2 \otimes g^3 \otimes g^2<br /> \\<br /> &= \left[ \frac{r S_{\theta z}}{\partial \theta} +r (r S_{\theta r}) \right] \frac{1}{r^2} e_{\theta} \otimes e_{z} \otimes e_{\theta} \\<br /> &= \frac{1}{r} \left( \frac{\partial S_{\theta z}}{\partial \theta} + r S_{\theta r} \right) e_\theta \otimes e_z \otimes e_\theta<br /> \end{align} [/tex]

which is clearly different from what wikipedia says. I don't understand how [tex]S_{rz}[/tex] could possibly remain because it is multiplied by a zero Chirstoffel symbol...
I have been using this approach to successfully calculate many other terms, but it worked. I do not understand why it doesn't work in these terms.

If I turn to another formula for the gradient of a tensor
[tex] \nabla S = \left( \frac{\partial S^{ij}}{\partial z^k} + S^{lj}\Gamma^i_{lk}+S^{il}\Gamma^j_{lk} \right) g_i \otimes g_j \otimes g^k[/tex]
it seems that this might work because after expansion,
[tex]S_{rz}[/tex]
is multiplied by [tex]\Gamma^2_{12}[/tex], which is non-zero.

I am very confused about this. What the problem with my first approach?
Can someone help me out? Thanks.
 

Attachments

  • formula.png
    formula.png
    7.4 KB · Views: 781
  • gradTensor.png
    gradTensor.png
    41.7 KB · Views: 1,002
Last edited:
Physics news on Phys.org
I didn't see any obvious mistakes, but I'm not sure of the nature of your tensor field, and I suspect that could be the problem.

[itex]S^{ij}[/itex] transforms differently from [itex]S_{ij}[/itex], one is covariant in both indices, and one is contravariant in both indices.

Without knowing more about the details of your problem, I can't tell whether S is supposed to be covariant or contravariant.

For rank 1 tensors, [itex]\frac{\partial}{\partial r}[/itex] would be contravariant, aka a "vector", while dr would be covariant, a map from a vector to a scalar (Sometimes dr could be considered just a scalar, a number, rather than a tensor. The difference is in the domain, if it's just a number it doesn't operate on anything, if it's a tensor it still returns a number, but it returns a number when it's given a vector as input)

For rank 2 tensors, if you're returning a number given two vectors, the tensor is covariant, written with lower indices, S_{ij}, just as the tensor [itex]v_{i}[/itex], a synonym for [itex]d x_{i}[/itex] returns a number given one vector.

[add]
Another possible issue is the interpretation of 'gradient'. I was thinking [itex]\nabla_{a}[/itex], which is what you computed in step one, but it's possible you are actually looking for [itex]\nabla^{a}[/itex]. Again, it's the whole co-contravariant thing.

A gradient usually has a vector value, you might just need to raise the index of what you computed. This would be done by multiplying by [itex]g^{ab}[/itex], i.e

[tex] \nabla^{a} S_{ij} = g^{ab} \nabla_{b} S_{ij}[/tex]

where summation over the repeated index (b in this case) is implied
 
Last edited:
pervect said:
I didn't see any obvious mistakes, but I'm not sure of the nature of your tensor field, and I suspect that could be the problem.

[itex]S^{ij}[/itex] transforms differently from [itex]S_{ij}[/itex], one is covariant in both indices, and one is contravariant in both indices.

Without knowing more about the details of your problem, I can't tell whether S is supposed to be covariant or contravariant.

For rank 1 tensors, [itex]\frac{\partial}{\partial r}[/itex] would be contravariant, aka a "vector", while dr would be covariant, a map from a vector to a scalar (Sometimes dr could be considered just a scalar, a number, rather than a tensor. The difference is in the domain, if it's just a number it doesn't operate on anything, if it's a tensor it still returns a number, but it returns a number when it's given a vector as input)

For rank 2 tensors, if you're returning a number given two vectors, the tensor is covariant, written with lower indices, S_{ij}, just as the tensor [itex]v_{i}[/itex], a synonym for [itex]d x_{i}[/itex] returns a number given one vector.

[add]
Another possible issue is the interpretation of 'gradient'. I was thinking [itex]\nabla_{a}[/itex], but it's possible you are actually looking for [itex]\nabla^{a}[/itex]. Again, it's the whole co-contravariant thing...

How about if S is the stress tensor, and I would like to find the gradient of the stress tensor, which is a third order tensor in cylindrical coordinates?

I am calculating according to the definition of the gradient of a tensor given up, which is the same definition wikipedia used...
I am not sure why they could be different... :(
 
Last edited:
If we assume that S_ij is actually covariant, as you wrote it, I'd think that the gradient would be [itex]\nabla^a S_{ij}[/itex]. Which is pretty much what the wiki seems to say, and it suggests that you omitted to raise the index in your calculations.

See for instance http://mathworld.wolfram.com/IndexRaising.html as to how to raise an index.

At least that's my best guess at this point, I'm afraid I don't have the time to dig into this really thoroughly at the moment, and I'm "shooting from the hip" a bit. Maybe someone else can help you.
 
A friend of mine spotted a calculation mistake...
Somehow I read [tex]\Gamma^l_{ki}[/tex] as [tex]\Gamma^l_{kj}[/tex]...
and
[tex]\Gamma^l_{kj}[/tex] as [tex]\Gamma^l_{ki}[/tex].
I don't know why I didn't make this mistake for the previous terms but only for this term, and couldn't spot it...stupid mistake.

Anyway, thank you for your help.