# Gradient of a tensor in cylindrical coordinates

1. Jul 23, 2011

### hanson

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:
$$\nabla S = ... +\frac{1}{r}\left[ \frac{\partial S_{\theta z}}{\partial \theta} + S_{rz}\right] e_{\theta} \otimes e_{z} \otimes e_{\theta}+...$$

The formula I use is the following
$$\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 $$1:r, \ 2:\theta, 3:z$$, 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}$$

And
$$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
\begin{align} (\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 \end{align}

which is clearly different from what wikipedia says. I don't understand how $$S_{rz}$$ 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,
$$S_{rz}$$
is multiplied by $$\Gamma^2_{12}$$, which is non-zero.

Can someone help me out? Thanks.

#### Attached Files:

• ###### formula.png
File size:
9.5 KB
Views:
82
File size:
53.7 KB
Views:
114
Last edited: Jul 23, 2011
2. Jul 24, 2011

### pervect

Staff Emeritus
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.

$S^{ij}$ transforms differently from $S_{ij}$, 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, $\frac{\partial}{\partial r}$ 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 $v_{i}$, a synonym for $d x_{i}$ returns a number given one vector.

Another possible issue is the interpretation of 'gradient'. I was thinking $\nabla_{a}$, which is what you computed in step one, but it's possible you are actually looking for $\nabla^{a}$. 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 $g^{ab}$, 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
3. Jul 24, 2011

### hanson

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
4. Jul 24, 2011

### hanson

5. Jul 24, 2011

### pervect

Staff Emeritus
If we assume that S_ij is actually covariant, as you wrote it, I'd think that the gradient would be $\nabla^a S_{ij}$. 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.

6. Jul 25, 2011

### hanson

A friend of mine spotted a calculation mistake...
Somehow I read $$\Gamma^l_{ki}$$ as $$\Gamma^l_{kj}$$...
and
$$\Gamma^l_{kj}$$ as $$\Gamma^l_{ki}$$.
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.