# Curl in cylindrical coordinates

I'm trying to figure out how to calculate curl ($$\nabla \times \vec{V}^{\,}$$) when the velocity vector is represented in cylindrical coordinates. The way I thought I would do it is by calculating this determinant:

$$\left|\begin{matrix} e_r & e_{\theta} & e_{z} \\ \frac{\partial }{\partial r} & \frac{1}{r} \frac{\partial }{\partial \theta} & \frac{\partial }{\partial z} \\ v_r & v_\theta & v_z \end{matrix}\right|$$

Which gives:

$$\left\lbrack \frac{1}{r} \frac{\partial v_z}{\partial \theta} - \frac{\partial v_\theta}{\partial z}, \frac{\partial v_r}{\partial z} - \frac{\partial v_z}{\partial r}, \frac{\partial v_\theta}{\partial r} - \frac{1}{r} \frac{\partial v_r}{\partial \theta}\right\rbrack$$

But I think the correct curl is:

$$\left\lbrack \frac{1}{r} \frac{\partial v_z}{\partial \theta} - \frac{\partial v_\theta}{\partial z}, \frac{\partial v_r}{\partial z} - \frac{\partial v_z}{\partial r}, \frac{1}{r} \frac{\partial rv_\theta}{\partial r} - \frac{1}{r} \frac{\partial v_r}{\partial \theta}\right\rbrack$$

Can anyone explain why this is? It seems sort of like the way to calculate it is with:

$$\left|\begin{matrix} e_r & e_{\theta} & e_{z} \\ \frac{1}{r}\frac{\partial }{\partial r} & \frac{1}{r} \frac{\partial }{\partial \theta} & \frac{\partial }{\partial z} \\ v_r & rv_\theta & v_z \end{matrix} \right|$$

Is that correct?

• Do you also want the curl represented in cylindrical coordinates? Or do you want the curl in rectangular coordinates? Commented May 28, 2013 at 13:50
• I want the curl in cylindrical, but I'm curious as to how it's derived. I don't want to have to memorize it, but the way I tried to derive it seems uncorrect... Commented May 28, 2013 at 14:01

I'm assuming that you already know how to get the curl for a vector field in Cartesian coordinate system. When you try to derive the same for a curvilinear coordinate system (cylindrical, in your case), you encounter problems. Cartesian coordinate system is "global" in a sense i.e the unit vectors $$\mathbb {e_x}, \mathbb {e_y}, \mathbb {e_z}$$ point in the same direction irrepective of the coordinates $$(x,y,z)$$. On the other hand, the curvilinear coordinate systems are in a sense "local" i.e the direction of the unit vectors change with the location of the coordinates.

For example, in a cylindrical coordinate system, you know that one of the unit vectors is along the direction of the radius vector. The radius vector can have different orientation depending on where you are located in space. Hence the unit vector for point A differs from those of point B, in general.

I'll first try to explain how to go from a cartesian system to a curvilinear system and then just apply the relevant results for the cylindrical system. Let us take the coordinates in the new system as a function of the original coordinates. $$q_1 = q_1(x,y,z) \qquad q_2 = q_2(x,y,z) \qquad q_3 = q_3(x,y,z)$$ Let us consider the length of a small element $$ds^2 = d\mathbf{r}.d\mathbf{r} = dx^2 + dy^2 + dz^2$$ The small element $$dx$$ can be written as $$dx = \frac{\partial x}{\partial q_1}dq_1 + \frac{\partial x}{\partial q_2}dq_2+\frac{\partial x}{\partial q_3}dq_3$$ Doing the same for $$dy$$ and $$dz$$, we can get the distance element in terms of partial derivatives of $$x,y,z$$ in the new coordinate system. This will be of the form $$ds^2 = \sum_{i,j} \frac{\partial \mathbf{r}}{\partial q_i} . \frac{\partial \mathbf{r}}{\partial q_j} dq_i dq_j = \sum_{i,j} g_{ij} dq_i dq_j$$ Here $$\frac{\partial \mathbf{r}}{\partial q_j}$$ represents the tangent vectors for $$q_i =$$constant , $$i\neq j$$. For an orthoganal coordinate system, where the surfaces are mutually perpendicular, the dot product becomes $$\frac{\partial \mathbf{r}}{\partial q_i} . \frac{\partial \mathbf{r}}{\partial q_j} = c \delta_{ij}$$ where the scaling factor $$c$$ arises as we haven't considered unit vectors. These factors are taken as $$c = \frac{\partial \mathbf{r}}{\partial q_i} . \frac{\partial \mathbf{r}}{\partial q_i} = h_i^2$$ $$ds^2 = \sum_{i=1}^3 (h_i dq_i)^2 = \sum_i ds_i^2$$

Hence the length element along direction $$q_i$$ is given by $$ds_i = h_i dq_i$$.

Now, we are equipped to get the curl for the curvilinear system. Consider an infinitesimal enclosed path in the $$q_1 q_2$$ plane. And evaluate the path integral of the vector field $$\mathbf{V}$$ along this path. $$\oint \mathbf{V}(q_1,q_2,q_3).d\mathbf{r} = \oint \mathbf{V}.\left( \sum_{i=2}^3 \frac{\partial \mathbf{r}}{\partial q_i} dq_i\right)$$

      (q1, q2+ds_2)        (q1+ds_1, q2+ds_2)
-----------<------------
|                      |
|                      |
V                      ^
|                      |
|---------->-----------|
(q1, q2)              (q1+ds_1, q2)


$$\oint \mathbf{V}.d\mathbf{r} = V_1 h_1 dq_1 - \left( V_1 h_1 + \frac{\partial V_1 h_1}{\partial q_2} dq_2\right)dq_1 - V_2 h_2 dq_2 + \left( V_2 h_2 + \frac{\partial V_2 h_2}{\partial q_1} dq_1\right)dq_2$$ $$= \left( \frac{\partial V_2 h_2}{\partial q_1} - \frac{\partial V_1 h_1}{\partial q_2} \right)dq_1 dq_2$$ From Stokes theorem, $$\oint \mathbf{V}.d\mathbf{r} = \int_S \nabla \times \mathbf{V} . d\mathbf{\sigma} = \nabla \times \mathbf{V} . \mathbf{\hat{q_3}} (h_1 dq_1) (h_2 dq_2) = \left( \frac{\partial V_2 h_2}{\partial q_1} - \frac{\partial V_1 h_1}{\partial q_2} \right)dq_1 dq_2$$ Hence the $$3$$ component of the curl can be written as $$(\nabla \times \mathbf{V})_3 = \frac{1}{h_1 h_2} \left( \frac{\partial V_2 h_2}{\partial q_1} -\frac{\partial V_1 h_1}{\partial q_2} \right)$$ Similarly, other components can be evaluated and all the components can be assembled in the familiar determinant format. $$\nabla \times \mathbf{V} = \frac{1}{h_1 h_2 h_3} \begin{vmatrix} \mathbf{\hat{q_1}}h_1 & \mathbf{\hat{q_2}}h_2 & \mathbf{\hat{q_3}}h_3\\ \frac{\partial}{\partial q_1} & \frac{\partial}{\partial q_2} & \frac{\partial}{\partial q_3} \\ V_1 h_1 & V_2 h_2 & V_3 h_3 \\ \end{vmatrix}$$

Now the expression for the curl is ready. All we need to do is find the values of $$h$$ for the cylindrical coordinate system. This can be obtained, if we know the transformation between cartesian and cylindrical polar coordinates. $$(x,y,z) = (r\cos\phi, r\sin\phi, z)$$ Now the length element $$ds^2 = dx^2 + dy^2 + dz^2 = (d(r\cos\phi))^2 + (d(r\sin\phi))^2 + dz^2$$ Simplifying the above expression, we get $$ds^2 = (dr)^2 + r^2(d\phi)^2 + (dz)^2$$ From the above equation, we can obtain the scaling factors, $$h_1 = 1$$ , $$h_2 = r$$, $$h_3 = 1$$. Hence the curl of a vector field can be written as, $$\nabla \times \mathbf{V} = \frac{1}{r} \begin{vmatrix} \mathbf{\hat{r}} & r\mathbf{\hat{\phi}}& \mathbf{\hat{z}}\\ \frac{\partial}{\partial r} & \frac{\partial}{\partial \phi} & \frac{\partial}{\partial z} \\ V_r & r V_\phi & V_z \\ \end{vmatrix}$$

• in the diagram, shouldn't it be actually $(q_1+dq_1,q_2), (q_1+dq_1, q_2+dq_2)$ etc. the change in position vector $d\vec{r}$ is $ds_1$ not the change in coordinates that is $dq_1$. Commented Jan 4, 2022 at 8:57

A correct definition of the "gradient operator" in cylindrical coordinates is $$\nabla = e_r \frac{\partial}{\partial r} + e_\theta \frac{1}{r} \frac{\partial}{\partial \theta} + e_z\frac{\partial}{\partial z} \, ,$$ where $$e_r = \cos\theta\, e_x + \sin\theta\, e_y \, ,\\ e_\theta = \cos\theta\, e_y - \sin\theta\, e_x \, ,$$ and $(e_x, e_y, e_z)$ is an orthonormal basis of a Cartesian coordinate system such that $e_z = e_x\times e_y$. When computing the curl of $\vec{V}$, one must be careful that some basis vectors depend on the coordinates, which is not the case in a Cartesian coordinate system. Here, one has $$\frac{\partial e_r}{\partial \theta} = e_\theta \qquad\text{and}\qquad \frac{\partial e_\theta}{\partial \theta} = -e_r \, .$$ When expanding $\nabla\times \vec{V}$ and using the product rule of differentiation, \begin{aligned} &\nabla\times \vec{V} = \left(e_r \frac{\partial}{\partial r} + e_\theta \frac{1}{r} \frac{\partial}{\partial \theta} + e_z\frac{\partial}{\partial z}\right) \times \left(v_r e_r + v_\theta e_\theta + v_z e_z\right)\\ &\phantom{\nabla\times \vec{V}} = e_r \times \frac{\partial}{\partial r} \left(v_r e_r + v_\theta e_\theta + v_z e_z\right) \\ &\phantom{\nabla\times \vec{V} =}+ e_\theta \times \frac{1}{r} \frac{\partial}{\partial \theta} \left(v_r e_r + v_\theta e_\theta + v_z e_z\right)\\ &\phantom{\nabla\times \vec{V} =}+ e_z \times \frac{\partial}{\partial z} \left(v_r e_r + v_\theta e_\theta + v_z e_z\right) \\ &\phantom{\nabla\times \vec{V}} = \left(\frac{1}{r}\frac{\partial v_z}{\partial \theta} - \frac{\partial v_\theta}{\partial z}\right) e_r + \left(\frac{\partial v_r}{\partial z} - \frac{\partial v_z}{\partial r}\right) e_\theta + \frac{1}{r}\left(\frac{\partial (r v_\theta)}{\partial r} - \frac{\partial v_r}{\partial \theta}\right) e_z \, , \end{aligned} the correct curl is obtained.

Note : in a more general framework, the Christoffel symbols $$\Gamma_{ij}^k = \frac{\partial e_i}{\partial x^j} \cdot e_k \qquad\text{where}\qquad e_i = \frac{\partial g}{\partial x^i}$$ are introduced. The vectors $e_i$ of the natural basis are defined as the tangent vectors to the coordinate system's point-to-vector mapping $(x^1,\dots,x^d) \mapsto g(x^1,\dots,x^d)$, where $d$ denotes the space dimension.

• Are these the same thing as the scaling factor given by bobafrett? Commented Feb 27, 2017 at 23:55
• No, but there may be a link. The scale factors are taken from Lamé's method for curvilinear coordinates. What I know is that Christoffel symbols are found also in relativity, whereas curvilinear coordinates apply in euclidean spaces only ($\mathbb{R}^d$). It may depend on preferences. Personally, I'm not very comfortable with $d s^2$ and so on. Commented Feb 28, 2017 at 10:11

In cylindrical coordinates $$x = r \cos \theta$$, $$y = r \sin \theta$$, and $$z=z$$, $$ds^2 = dr^2 + r^2 d\theta^2 +dz^2$$. For orthogonal coordinates, $$ds^2 = h_1^2dx_1^2 + h_2^2dx_2^2 + h_3^2dx_3^2$$, where $$h_1,h_2,h_3$$ are the scale factors. I'm mentioning this since I think you might be missing some of these. Comparing the forms of $$ds^2$$, $$h_1 = 1$$, $$h_2 = r$$, and $$h_3 =1$$.

With the scale factors identified, $$\nabla \times \vec{V}$$ becomes

$$\dfrac{1}{h_1 h_2 h_3}\begin{vmatrix} h_1 \vec{e_1} & h_2 \vec{e_2} & h_3 \vec{e_3} \\ \dfrac{\partial}{\partial x_1} & \dfrac{\partial}{\partial x_2} & \dfrac{\partial}{\partial x_3} \\ h_1 V_1 & h_2 V_2 & h_3 V_3 \end{vmatrix}$$

Plugging in the scale factors for cylindrical coordinates gives

$$\dfrac{1}{r}\begin{vmatrix} \vec{e_r} & r \vec{e_ \theta} & \vec{e_z} \\ \dfrac{\partial}{\partial r} & \dfrac{\partial}{\partial \theta} & \dfrac{\partial}{\partial z} \\ V_r & r V_\theta & V_z \end{vmatrix} = \bigg(\dfrac{1}{r} \dfrac{\partial V_z}{\partial \theta} - \dfrac{\partial V_\theta}{\partial z} \bigg) \vec{e_r} + \bigg(\dfrac{\partial V_r}{\partial z} - \dfrac{\partial V_z}{\partial r} \bigg) \vec{e_\theta} + \dfrac{1}{r} \bigg( \dfrac{\partial (r V_\theta)}{\partial r} - \dfrac{\partial V_r}{\partial \theta} \bigg) \vec{e_z}$$

• I'm not quite understanding this approach. Why do you use surfaces? What's wrong with the method by OP, which was what I did. Commented Feb 22, 2017 at 16:05
• I'm not using surfaces. This is a transformation to curvilinear coordinates. Commented Feb 22, 2017 at 17:07
• Ok, but where did your first matrix come from? Commented Feb 22, 2017 at 17:36
• en.wikipedia.org/wiki/Curvilinear_coordinates Commented Feb 22, 2017 at 18:22
• Coming back to this answer four years later. I think you forgot a $\det$ in front of the matrices? Commented May 21, 2021 at 22:52