Categories: Mathematics, Physics.

Curvilinear coordinates

In a 3D coordinate system, the isosurface of a coordinate (i.e. the surface where that coordinate is constant while the others vary) is known as a coordinate surface, and the intersections of the surfaces of different coordinates are called coordinate lines.

A curvilinear coordinate system is one where at least one of the coordinate surfaces is curved, e.g. in cylindrical coordinates the line between \(r\) and \(z\) is a circle. If the coordinate surfaces are mutually perpendicular, it is an orthogonal system, which is generally desirable.

A useful attribute of a coordinate system is its line element \(\dd{\ell}\), which represents the differential element of a line in any direction. For an orthogonal system, its square \(\dd{\ell}^2\) is calculated by taking the differential elements of the old Cartesian \((x, y, z)\) system and writing them out in the new \((x_1, x_2, x_3)\) system. The resulting expression will be of the form:

\[\begin{aligned} \boxed{ \dd{\ell}^2 = \dd{x}^2 + \dd{y}^2 + \dd{z}^2 = h_1^2 \dd{x_1}^2 + h_2^2 \dd{x_2}^2 + h_3^2 \dd{x_3}^2 } \end{aligned}\]

Where \(h_1\), \(h_2\), and \(h_3\) are called scale factors, and need not be constants. The equation above only contains quadratic terms because the coordinate system is orthogonal by assumption.

Examples of orthogonal curvilinear coordinate systems include spherical coordinates, cylindrical coordinates, and parabolic cylindrical coordinates.

In the following subsections, we derive general formulae to convert expressions from Cartesian coordinates in the new orthogonal system \((x_1, x_2, x_3)\).

Basis vectors

Consider the the vector form of the line element \(\dd{\ell}\), denoted by \(\dd{\vu{\ell}}\) and expressed as:

\[\begin{aligned} \dd{\vu{\ell}} = \vu{e}_x \dd{x} + \vu{e}_y \dd{y} + \vu{e}_z \dd{z} \end{aligned}\]

We can expand the Cartesian differential elements, e.g. \(\dd{y}\), in the new basis as follows:

\[\begin{aligned} \dd{y} = \pdv{y}{x_1} \dd{x_1} + \pdv{y}{x_2} \dd{x_2} + \pdv{y}{x_3} \dd{x_3} \end{aligned}\]

If we write this out for \(\dd{x}\), \(\dd{y}\) and \(\dd{z}\), and group the terms according to \(\dd{x}_1\), \(\dd{x}_2\) and \(\dd{x}_3\), we can compare it the alternative form of \(\dd{\vu{\ell}}\):

\[\begin{aligned} \dd{\vu{\ell}} = \vu{e}_1 \:h_1 \dd{x_1} + \vu{e}_2 \:h_2 \dd{x_2} + \vu{e}_3 \:h_3 \dd{x_4} \end{aligned}\]

From this, we can read off \(\vu{e}_1\), \(\vu{e}_2\) and \(\vu{e}_3\). Here we only give \(\vu{e}_1\), since \(\vu{e}_2\) and \(\vu{e}_3\) are analogous:

\[\begin{aligned} \boxed{ h_1 \vu{e}_1 = \vu{e}_x \pdv{x}{x_1} + \vu{e}_y \pdv{y}{x_1} + \vu{e}_z \pdv{y}{x_1} } \end{aligned}\]


For a given direction \(\dd{\ell}\), we know that \(\dv*{f}{\ell}\) is the component of \(\nabla f\) in that direction:

\[\begin{aligned} \dv{f}{\ell} = \pdv{f}{x} \dv{x}{\ell} + \pdv{f}{y} \dv{y}{\ell} + \pdv{f}{z} \dv{z}{\ell} = \nabla f \cdot \bigg( \dv{x}{\ell}, \dv{y}{\ell}, \dv{z}{\ell} \bigg) = \nabla f \cdot \vu{u} \end{aligned}\]

Where \(\vu{u}\) is simply a unit vector in the direction of \(\dd{\ell}\). We can thus find an expression for the gradient \(\nabla f\) by choosing \(\dd{\ell}\) to be \(h_1 \dd{x_1}\), \(h_2 \dd{x_2}\) and \(h_3 \dd{x_3}\) in turn:

\[\begin{gathered} \nabla f = \vu{e}_1 \dv{x_1}{\ell} \pdv{f}{x_1} + \vu{e}_2 \dv{x_2}{\ell} \pdv{f}{x_2} + \vu{e}_3 \dv{x_3}{\ell} \pdv{f}{x_3} \\ \boxed{ \nabla f = \vu{e}_1 \frac{1}{h_1} \pdv{f}{x_1} + \vu{e}_2 \frac{1}{h_2} \pdv{f}{x_2} + \vu{e}_3 \frac{1}{h_3} \pdv{f}{x_3} } \end{gathered}\]

Where \(\vu{e}_1\), \(\vu{e}_2\) and \(\vu{e}_3\) are the basis unit vectors respectively corresponding to \(x_1\), \(x_2\) and \(x_3\).


Consider a vector \(\vb{V}\) in the target coordinate system with components \(V_1\), \(V_2\) and \(V_3\):

\[\begin{aligned} \vb{V} &= \vu{e}_1 V_1 + \vu{e}_2 V_2 + \vu{e}_3 V_3 \\ &= \vu{e}_1 \frac{1}{h_2 h_3} (h_2 h_3 V_1) + \vu{e}_2 \frac{1}{h_1 h_3} (h_1 h_3 V_2) + \vu{e}_3 \frac{1}{h_1 h_2} (h_1 h_2 V_3) \end{aligned}\]

We take only the \(\vu{e}_1\)-component of this vector, and expand its divergence using a vector identity, where \(f = h_2 h_3 V_1\) is a scalar and \(\vb{U} = \vu{e}_1 / (h_2 h_3)\) is a vector:

\[\begin{gathered} \nabla \cdot (\vb{U} \: f) = \vb{U} \cdot (\nabla f) + (\nabla \cdot \vb{U}) \: f \\ \nabla \cdot \Big( \frac{\vu{e}_1}{h_2 h_3} (h_2 h_3 V_1) \Big) = \frac{\vu{e}_1}{h_2 h_3} \cdot \Big( \nabla (h_2 h_3 V_1) \Big) + \Big( \nabla \cdot \frac{\vu{e}_1}{h_2 h_3} \Big) (h_2 h_3 V_1) \end{gathered}\]

The first term is straightforward to calculate thanks to our preceding expression for the gradient. Only the \(\vu{e}_1\)-component survives due to the dot product:

\[\begin{aligned} \frac{\vu{e}_1}{h_2 h_3} \cdot \Big( \nabla (h_2 h_3 V_1) \Big) = \frac{\vu{e}_1}{h_1 h_2 h_3} \pdv{(h_2 h_3 V_1)}{x_1} \end{aligned}\]

The second term is a bit more involved. To begin with, we use the gradient formula to note that:

\[\begin{aligned} \nabla x_1 = \frac{\vu{e}_1}{h_1} \qquad \quad \nabla x_2 = \frac{\vu{e}_2}{h_2} \qquad \quad \nabla x_3 = \frac{\vu{e}_3}{h_3} \end{aligned}\]

Because \(\vu{e}_2 \cross \vu{e}_3 = \vu{e}_1\) in an orthogonal basis, we can get the vector whose divergence we want:

\[\begin{aligned} \nabla x_2 \cross \nabla x_3 = \frac{\vu{e}_2}{h_2} \cross \frac{\vu{e}_3}{h_3} = \frac{\vu{e}_1}{h_2 h_3} \end{aligned}\]

We then apply the divergence and expand the expression using a vector identity. In all cases, the curl of a gradient \(\nabla \cross \nabla f\) is zero, so:

\[\begin{aligned} \nabla \cdot \frac{\vu{e}_1}{h_2 h_3} = \nabla \cdot \big( \nabla x_2 \cross \nabla x_3 \big) = \nabla x_3 \cdot (\nabla \cross \nabla x_2) - \nabla x_2 \cdot (\nabla \cross \nabla x_3) = 0 \end{aligned}\]

After repeating this procedure for the other components of \(\vb{V}\), we arrive at the following general expression for the divergence \(\nabla \cdot \vb{V}\):

\[\begin{aligned} \boxed{ \nabla \cdot \vb{V} = \frac{1}{h_1 h_2 h_3} \Big( \pdv{(h_2 h_3 V_1)}{x_1} + \pdv{(h_1 h_3 V_2)}{x_2} + \pdv{(h_1 h_2 V_3)}{x_3} \Big) } \end{aligned}\]


The Laplacian \(\nabla^2 f\) is simply \(\nabla \cdot \nabla f\), so we can find the general formula by combining the two preceding results for the gradient and the divergence:

\[\begin{aligned} \boxed{ \nabla^2 f = \frac{1}{h_1 h_2 h_3} \bigg( \pdv{x_1} \Big(\! \frac{h_2 h_3}{h_1} \pdv{f}{x_1} \!\Big) + \pdv{x_2} \Big(\! \frac{h_1 h_3}{h_2} \pdv{f}{x_2} \!\Big) + \pdv{x_3} \Big(\! \frac{h_1 h_2}{h_3} \pdv{f}{x_3} \!\Big) \bigg) } \end{aligned}\]


We find the curl in a similar way as the divergence. Consider an arbitrary vector \(\vb{V}\):

\[\begin{aligned} \vb{V} = \vu{e}_1 V_1 + \vu{e}_2 V_2 + \vu{e}_3 V_3 = \frac{\vu{e}_1}{h_1} (h_1 V_1) + \frac{\vu{e}_2}{h_2} (h_2 V_2) + \frac{\vu{e}_3}{h_3} (h_3 V_3) \end{aligned}\]

We expand the curl of its \(\vu{e}_1\)-component using a vector identity, where \(f = h_1 V_1\) is a scalar and \(\vb{U} = \vu{e}_1 / h_1\) is a vector:

\[\begin{gathered} \nabla \cross (\vb{U} \: f) = (\nabla \cross \vb{U}) \: f - \vb{U} \cross (\nabla f) \\ \nabla \cross \Big( \frac{\vu{e}_1}{h_1} (h_1 V_1) \Big) = \Big( \nabla \cross \frac{\vu{e}_1}{h_1} \Big) (h_1 V_1) - \frac{\vu{e}_1}{h_1} \cross \Big( \nabla (h_1 V_1) \Big) \end{gathered}\]

Previously, when calculating the divergence, we already showed that \(\vu{e}_1 / h_1 = \nabla x_1\). Because the curl of a gradient is zero, the first term thus disappears, leaving only the second, which contains a gradient turning out to be:

\[\begin{aligned} \nabla (h_1 V_1) = \vu{e}_1 \frac{1}{h_1} \pdv{(h_1 V_1)}{x_1} + \vu{e}_2 \frac{1}{h_2} \pdv{(h_1 V_1)}{x_2} + \vu{e}_3 \frac{1}{h_3} \pdv{(h_1 V_1)}{x_3} \end{aligned}\]

Consequently, the curl of the first component of \(\vb{V}\) is as follows, using the fact that \(\vu{e}_1\), \(\vu{e}_2\) and \(\vu{e}_3\) are related to each other by cross products:

\[\begin{aligned} \nabla \cross \Big( \frac{\vu{e}_1}{h_1} (h_1 V_1) \Big) = - \frac{\vu{e}_1}{h_1} \cross \Big( \nabla (h_1 V_1) \Big) = - \frac{\vu{e}_3}{h_1 h_2} \pdv{(h_1 V_1)}{x_2} + \frac{\vu{e}_2}{h_1 h_3} \pdv{(h_1 V_1)}{x_3} \end{aligned}\]

If we go through the same process for the other components of \(\vb{V}\) and add the results together, we get the following expression for the curl \(\nabla \cross \vb{V}\):

\[\begin{aligned} \boxed{ \begin{aligned} \nabla \times \vb{V} &= \frac{\vu{e}_1}{h_2 h_3} \Big( \pdv{(h_3 V_3)}{x_2} - \pdv{(h_2 V_2)}{x_3} \Big) \\ &+ \frac{\vu{e}_2}{h_1 h_3} \Big( \pdv{(h_1 V_1)}{x_3} - \pdv{(h_3 V_3)}{x_1} \Big) \\ &+ \frac{\vu{e}_3}{h_1 h_2} \Big( \pdv{(h_2 V_2)}{x_1} - \pdv{(h_1 V_1)}{x_2} \Big) \end{aligned} } \end{aligned}\]

Differential elements

The point of the scale factors \(h_1\), \(h_2\) and \(h_3\), as can seen from their derivation, is to correct for “distortions” of the coordinates compared to the Cartesian system, such that the line element \(\dd{\ell}\) retains its length. This property extends to the surface \(\dd{S}\) and volume \(\dd{V}\).

When handling a differential volume in curvilinear coordinates, e.g. for a volume integral, the size of the box \(\dd{V}\) must be corrected by the scale factors:

\[\begin{aligned} \boxed{ \dd{V} = \dd{x}\dd{y}\dd{z} = h_1 h_2 h_3 \dd{x_1} \dd{x_2} \dd{x_3} } \end{aligned}\]

The same is true for the isosurfaces \(\dd{S_1}\), \(\dd{S_2}\) and \(\dd{S_3}\) where the coordinates \(x_1\), \(x_2\) and \(x_3\) are respectively kept constant:

\[\begin{aligned} \boxed{ \begin{aligned} \dd{S_1} &= h_2 h_3 \dd{x_2} \dd{x_3} \\ \dd{S_2} &= h_1 h_3 \dd{x_1} \dd{x_3} \\ \dd{S_3} &= h_1 h_2 \dd{x_1} \dd{x_2} \end{aligned} } \end{aligned}\]

Using the same logic, the normal vector element \(\dd{\vu{S}}\) of an arbitrary surface is given by:

\[\begin{aligned} \boxed{ \dd{\vu{S}} = \vu{e}_1 h_2 h_3 \dd{x_2} \dd{x_3} + \vu{e}_2 h_1 h_3 \dd{x_1} \dd{x_3} + \vu{e}_3 h_1 h_2 \dd{x_1} \dd{x_2} } \end{aligned}\]

Finally, the tangent vector element \(\dd{\vu{\ell}}\) takes the following form:

\[\begin{aligned} \boxed{ \dd{\vu{\ell}} = \vu{e}_1 h_1 \dd{x_1} + \vu{e}_2 h_2 \dd{x_2} + \vu{e}_3 h_3 \dd{x_3} } \end{aligned}\]


  1. M.L. Boas, Mathematical methods in the physical sciences, 2nd edition, Wiley.

© "Prefetch". Licensed under CC BY-SA 4.0.