I'm reading a little pdf book as an introduction to tensor analysis ("Quick introduction to tensor analysis", by R. A. Sharipov). I've reached the last section where it is explained how it is possible to differentiate a tensor field in curvilinear coordinates. The author derive the formula for the covariant derivative for a general tensor:

$$ \nabla_p X^{i_1, \cdots, i_r}_{j1, \cdots, j_s} = {{\partial X^{i_1, \cdots, i_r}_{j1, \cdots, j_s}} \over {\partial y^p}} + \sum_\alpha^r \sum_{m_\alpha} \Gamma^{i_\alpha}_{pm_\alpha}X^{i_1, \cdots, m_\alpha, \cdots, i_r}_{j1, \cdots, j_s} - \sum_\alpha^r \sum_{n_\alpha} \Gamma^{n_\alpha}_{pj_\alpha}X^{i_1, \cdots, i_r}_{j1, \cdots, n_\alpha, \cdots j_s} $$

I then used the formula (which is explained and derived inside the article) for the Christoffel symbol:

$$ \Gamma^k_{ij} = {{\partial y^k} \over {\partial x^q}} {{\partial^2 x^q} \over {\partial y^i \partial y^j}} $$

to calculate the Christoffel symbol for cylindrical coordinates. The author leaves as exercise to the reader to derive the expression of the gradient of a function $f$ in cylindrical coordinates starting from the covariant derivative. I've tryed to do what I was asked for, this is my attemp:

$$ \nabla f = (\nabla_\mu f) \hat{e}^\mu $$

which I've expanded into:

$$ \nabla f = \nabla_r f \hat{r} + \nabla_\varphi f \hat{\varphi} + \nabla_h f \hat{h} $$

where $r = \sqrt{(x^2 + y^2)}$, $\varphi = tan^{-1} {y \over x}$, $h = z$. Then I used the linearity of the derivation operation and used $f^r = f\hat{r}$, $f^\varphi = f\hat{\varphi}$, $f^h = f\hat{h}$. Hence the previous expansion can be calculated as:

$$ \nabla f = (\partial_r f^r + \Gamma^r_{rr} f^r + \Gamma^r_{r\varphi} f^\varphi + \Gamma^r_{rh} f^h) + (\partial_\varphi f^\varphi + \Gamma^\varphi_{\varphi r} f^r + \Gamma^\varphi_{\varphi \varphi} f^\varphi + \Gamma^\varphi_{\varphi h} f^h) + (\partial_h f^h + \Gamma^h_{h r} f^r + \Gamma^h_{h \varphi} f^\varphi + \Gamma^h_{h h} f^h)$$

where $\Gamma^r_{rr} = \Gamma^r_{r \varphi} = \Gamma^r_{rh} = \Gamma^\varphi_{\varphi r} = \Gamma^\varphi_{\varphi h} = \Gamma^h_{h r} = \Gamma^h_{h \varphi} = \Gamma^h_{hh} = 0$ and $\Gamma^\varphi_{\varphi \varphi} = {1 \over r}$


$$ \nabla f = \partial_r f^r + \left (\partial_\varphi f^\varphi + {1 \over r} f^\varphi \right ) + \partial_h f^h $$

But from here I don't know how should I go forth, since the correct expression for gradient in cylindrical coordinates is:

$$ \nabla f = \partial_r f \hat{r} + {1 \over r} \partial_\varphi f \hat{\varphi} + \partial_h f \hat{h} $$

(which I've taken from wikipedia) Any advice on how I shall go on to derive the correct gradient formula?

P.S. Exuse my poor English, I'm still practising it. Anyway thanks in advance for your answer

  • $\begingroup$ You're mixing up vectors and covectors, and most confusing of all the gradient. Some people use the term gradient to refer to the covector field $df$ (the exterior derivative /1-form or whatever you want to call it) whereas sometimes people use it to mean the vector field associated to it via the musical isomorphism given by the standard metric tensor on $\Bbb{R}^3$. I'll elaborate later if someone else doesn't already. The Christoffel symbols shouldn't appear in this calculation. $\endgroup$
    – peek-a-boo
    Jun 29, 2021 at 17:55
  • $\begingroup$ but if the christoffel symbol shouldn't appear I can it be possible that in the final calculation there is a 1/r term? $\endgroup$
    – Luke__
    Jun 29, 2021 at 18:26

1 Answer 1


The $\nabla$ in differential geometry is NOT the same $\nabla$ that you learn about in your vector calculus courses. In a typical vector calculus course, when one considers a function $f:\Bbb{R}^n\to\Bbb{R}$ and introduces $\nabla f$ as the gradient vector field, this is what I will henceforth refer to as $\text{grad}(f)$. This is a vector field i.e a tensor field of type $(1,0)$. In differential geometry, $\nabla f$ is a $(0,1)$ tensor field, i.e a covector field. By definition, \begin{align} \nabla f&:= df=\sum_{i=1}^n\frac{\partial f}{\partial x^i}\,dx^i\tag{$*$} \end{align} Even from your first equation, you can see that because $f$ is a smooth function, it is a $(0,0)$ tensor field, so that $r=s=0$. So, if $r$ and $s$ are $0$, there shouldn't even be any $\Gamma$ symbols. Just look at the formula you wrote: \begin{align} \nabla_{p}f&=\frac{\partial f}{\partial y^p} \end{align} (slightly sloppy notation, but this is exactly what $(*)$ says).

From here, if you want to recover the familiar vector-calculus formula, then it's not the $\Gamma$'s which matter, but rather the metric tensor itself, for which you need to know how one can convert between vectors and covectors using the musical isomorphism. By definition, if $g$ refers to the metric tensor on our manifold then \begin{align} \text{grad}(f)&:= g^{\sharp}(df)\\ &=g^{\sharp}\left(\sum_{i=1}^n\frac{\partial f}{\partial x^i}\,dx^i\right)\\ &=\sum_{i=1}^n\frac{\partial f}{\partial x^i}g^{\sharp}(dx^i)\\ &=\sum_{i,j=1}^n\frac{\partial f}{\partial x^i}g^{ij}\frac{\partial }{\partial x^j}\tag{$**$} \end{align} Here, $g_{ij}:=g\left(\frac{\partial}{\partial x^i},\frac{\partial}{\partial x^j}\right)$, and $(g^{ij})$ is the inverse matrix of $(g_{ij})$.

Now, $\frac{\partial}{\partial x^j}$ is the $j^{th}$ coordinate basis-vector, but it is not necessarily normalized. If we let $\mathbf{e}_j$ denote the normalized version, then the relationship is that \begin{align} \frac{\partial}{\partial x^j}&=\left\|\frac{\partial}{\partial x^j}\right\|\cdot \mathbf{e}_j =\sqrt{g_{jj}}\mathbf{e}_j\tag{$***$} \end{align} (i.e the length of a vector is the square root of its inner/dot-product with itself). Plugging $(***)$ into $(**)$ yields \begin{align} \text{grad}(f)&=\sum_{i,j=1}^ng^{ij}\sqrt{g_{jj}}\frac{\partial f}{\partial x^i}\,\mathbf{e}_j. \end{align} This is the general formula for the gradient vector field of a smooth function on any (Pseudo)-Riemannian manifold $(M,g)$.

In the case where $M=\Bbb{R}^3$ and $g$ is the standard metric tensor field on $\Bbb{R}^3$, the components relative to the cylindrical coordinates are \begin{align} [g_{ij}]&= \begin{pmatrix} g_{rr}& g_{r\phi}&g_{rz}\\ g_{\phi r}&g_{\phi\phi}&g_{\phi z}\\ g_{zr}&g_{z\phi}&g_{zz} \end{pmatrix} = \begin{pmatrix} 1&0&0\\ 0& r^2 & 0\\ 0&0&1 \end{pmatrix} \end{align} Since the matrix is diagonal, the inverse matrix is simply the matrix whose entries are reciprocals. So, plugging this into the above expression, it actually simplifies a lot: \begin{align} \text{grad}(f)&=\sum_{i,j=1}^ng^{ij}\sqrt{g_{jj}}\frac{\partial f}{\partial x^i}\mathbf{e}_j\\ &=\sum_{i=1}^n\frac{1}{g_{ii}}\sqrt{g_{ii}}\frac{\partial f}{\partial x^i}\,\mathbf{e}_i\tag{due to diagonal matrix}\\ &=\sum_{i=1}^n\frac{1}{\sqrt{g_{ii}}}\frac{\partial f}{\partial x^i}\mathbf{e}_i \end{align} For the specific case of cylindrical coordinates, we thus get \begin{align} \text{grad}(f)&=\frac{1}{\sqrt{g_{rr}}}\frac{\partial f}{\partial r}\mathbf{e}_r+ \frac{1}{\sqrt{g_{\phi\phi}}}\frac{\partial f}{\partial \phi}\mathbf{e}_{\phi}+ \frac{1}{\sqrt{g_{zz}}}\frac{\partial f}{\partial z}\mathbf{e}_z\\ &=\frac{\partial f}{\partial r}\mathbf{e}_r + \frac{1}{r}\frac{\partial f}{\partial \phi}\mathbf{e}_{\phi}+\frac{\partial f}{\partial z}\mathbf{e}_z, \end{align} which is precisely the formula you quote. So, just to reiterate, the $\frac{1}{r}$ comes from the metric tensor itself, not the $\Gamma$ (the $\Gamma$'s only appear if you're covariantly differentiating tensor fields of rank $\geq 1$ i.e $r+s\geq 1$).

Take a look at this math answer of mine for a similar calculation for polar coordinates in the plane (it's almost exactly the same calculation), and see the various links there.


YOu write

.... which I've expanded into \begin{align} \nabla f&=(\nabla_rf)\hat{r}+(\nabla_{\phi}f)\hat{\phi}+(\nabla_hf)\hat{h} \end{align}

Well, this is just wrong; on the LHS you have a covector field (i.e a tensor field of type $(0,1)$) while on the RHS you have a vector field (a tensor field of type $(1,0)$) so of course they cannot be equal. This is also not the definition of $\nabla f$ as given in your book (which is the same as $(*)$ which I wrote above). Actually, even the $\hat{e}^{\mu}$ notation is terrible, because the $\hat{}$ somehow suggests you're talking about a unit covector field, which is just wrong. The correct equation is $(*)$ which I wrote above, and surely that equation is super easy to remember.

  • $\begingroup$ Thank you very much for your time and effort in answering me. I now understand where I'm wrong. $\endgroup$
    – Luke__
    Jun 30, 2021 at 7:19
  • $\begingroup$ Is it still possible to arrive to the same result starting from the expression: $g^{ij} \left ( \nabla_j f \right ) \mathbf{e_i}$? In this case I have no ${\partial \over {\partial x^i}}$ or ${\partial \over {\partial x^j}}$ terms to normalize $\endgroup$
    – Luke__
    Jun 30, 2021 at 10:24
  • $\begingroup$ no, because $\text{grad}(f)$ is NOT equal to $g^{ij}(\nabla_jf)\mathbf{e}_i$. It is equal to $g^{ij}(\nabla_jf)\frac{\partial}{\partial x^i}$. This just goes to show you that normalizing isn't always a smart idea. $\endgroup$
    – peek-a-boo
    Jun 30, 2021 at 10:27
  • $\begingroup$ But I didn't really understand from where ${\partial \over {\partial x^i}}$ comes from and how could it be treated as a basis vector since it is just a differential operator $\endgroup$
    – Luke__
    Jun 30, 2021 at 10:29
  • $\begingroup$ @Luke__ I suggest you watch Lecture 5 Tangent Spaces. More generally, we can define tangent vectors on manifolds as differential operators. But this is really a completely separate question, and you should study the prerequisite differential geometry first. $\endgroup$
    – peek-a-boo
    Jun 30, 2021 at 10:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.