Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Gradient of a tensor in cylindrical coordinates

  1. Jul 23, 2011 #1
    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

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

    g^1 = e_r, \ g^2 =\frac{1}{r} e_{\theta}, \ g^3 = e_{z}

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

    Then, using the definition above, I naively think that the term I mentioned above in the very beginning will be computed as
    (\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
    &= \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} \\
    &= \frac{1}{r} \left( \frac{\partial S_{\theta z}}{\partial \theta} + r S_{\theta r} \right) e_\theta \otimes e_z \otimes e_\theta

    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
    \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
    it seems that this might work because after expansion,
    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.

    Attached Files:

    Last edited: Jul 23, 2011
  2. jcsd
  3. Jul 24, 2011 #2


    User Avatar
    Staff Emeritus
    Science Advisor

    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.

    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

    \nabla^{a} S_{ij} = g^{ab} \nabla_{b} S_{ij}

    where summation over the repeated index (b in this case) is implied
    Last edited: Jul 24, 2011
  4. Jul 24, 2011 #3
    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: Jul 24, 2011
  5. Jul 24, 2011 #4
  6. Jul 24, 2011 #5


    User Avatar
    Staff Emeritus
    Science Advisor

    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.
  7. Jul 25, 2011 #6
    A friend of mine spotted a calculation mistake...
    Somehow I read [tex]\Gamma^l_{ki}[/tex] as [tex]\Gamma^l_{kj}[/tex]...
    [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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook