Skip to main content
Mathematics LibreTexts

16: Stream Function, Vorticity Equations

  • Page ID
    93762
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Stream function

    A streamline at time \(t\) is defined as the curve whose tangent is everywhere parallel to the velocity vector. With \(d \mathbf{x}\) along the tangent, we have

    \[\nonumber \mathbf{u} \times d \mathbf{x}=0 \nonumber \]

    and with \(\mathbf{u}=(u, v, w)\) and \(d \mathbf{x}=(d x, d y, d z)\), the cross product yields the three equations

    \[v d z=w d y, \quad u d z=w d x, \quad u d y=v d x \nonumber \]

    or equivalently,

    \[\frac{d x}{u}=\frac{d y}{v}=\frac{d z}{w} \nonumber \]

    Streamlines have the following two properties. They cannot intersect except at a point of zero velocity, and as streamlines converge the fluid speed increases. The latter is a consequence of the incompressibility of the fluid: as the same flow rate of fluid passes through a smaller cross-sectional area, the fluid velocity must increase.

    Related to streamlines is the stream function. We specialize here to a two dimensional flow, with

    \[\mathbf{u}=(u(x, y), v(x, y), 0) \nonumber \]

    The incompressibility condition becomes

    \[\frac{\partial u}{\partial x}+\frac{\partial v}{\partial y}=0 \nonumber \]

    which can be satisfied by defining the scalar stream function \(\psi=\psi(x, y)\) by

    \[u(x, y)=\frac{\partial \psi}{\partial y}, \quad v(x, y)=-\frac{\partial \psi}{\partial x} \nonumber \]

    Now, the differential of the stream function \(\psi(x, y)\) satisfies

    \[\begin{aligned} d \psi &=\frac{\partial \psi}{\partial x} d x+\frac{\partial \psi}{\partial y} d y \\ &=-v d x+u d y \end{aligned} \nonumber \]

    which from (16.1) is equal to zero along streamlines. Thus the contour curves of constant \(\psi\) represent the streamlines of the flow field, and can provide a good visualization of a fluid flow in two dimensions.

    Vorticity

    The vector vorticity field is defined from the vector velocity field by

    \[\omega=\nabla \times \mathbf{u} \nonumber \]

    The vorticity is a measure of the local rotation of the fluid as can be seen from an application of Stokes’ theorem:

    \[\begin{aligned} \int_{S} \omega \cdot \hat{\mathbf{n}} d S &=\int_{S}(\boldsymbol{\nabla} \times \mathbf{u}) \cdot \hat{\mathbf{n}} d S \\ &=\oint_{C} \mathbf{u} \cdot d \mathbf{r} . \end{aligned} \nonumber \]

    Flows without vorticity are called irrotational, or potential flow, and vorticity is sometimes called swirl.

    The governing equation for vorticity may be found by taking the curl of the Navier-Stokes equation; that is,

    \[\boldsymbol{\nabla} \times\left\{\frac{\partial \mathbf{u}}{\partial t}+(\mathbf{u} \cdot \boldsymbol{\nabla}) \mathbf{u}\right\}=\boldsymbol{\nabla} \times\left\{-\frac{1}{\rho} \boldsymbol{\nabla} p+v \nabla^{2} \mathbf{u}\right\} \nonumber \]

    Computing term-by-term, we have

    \[\begin{aligned} \nabla \times\left\{\frac{\partial \mathbf{u}}{\partial t}\right\} &=\frac{\partial}{\partial t}(\nabla \times \mathbf{u}) \\ &=\frac{\partial \omega}{\partial t} \end{aligned} \nonumber \]

    And because the curl of a gradient is zero,

    \[\boldsymbol{\nabla} \times\left\{-\frac{1}{\rho} \boldsymbol{\nabla} p\right\}=0 . \nonumber \]

    Also,

    \[\begin{aligned} \boldsymbol{\nabla} \times\left\{v \nabla^{2} \mathbf{u}\right\} &=v \nabla^{2}(\boldsymbol{\nabla} \times \mathbf{u}) \\ &=v \nabla^{2} \omega \end{aligned} \nonumber \]

    The remaining term to compute is the curl of the convection term in the Navier-Stokes equation. We first consider the following equality (where the subscript \(i\) signifies the \(i\)-th component of the vector):

    \[\begin{aligned} \{\mathbf{u} \times(\boldsymbol{\nabla} \times \mathbf{u})\}_{i} &=\epsilon_{i j k} u_{j} \epsilon_{k l m} \frac{\partial u_{m}}{\partial x_{l}} \\ &=\epsilon_{k i j} \epsilon_{k l m} u_{j} \frac{\partial u_{m}}{\partial x_{l}} \\ &=\left(\delta_{i l} \delta_{j m}-\delta_{i m} \delta_{j l}\right) u_{j} \frac{\partial u_{m}}{\partial x_{l}} \\ &=u_{m} \frac{\partial u_{m}}{\partial x_{i}}-u_{l} \frac{\partial u_{i}}{\partial x_{l}} \\ &=\frac{1}{2} \frac{\partial}{\partial x_{i}} u_{m} u_{m}-u_{l} \frac{\partial u_{i}}{\partial x_{l}} \end{aligned} \nonumber \]

    Therefore, in vector form,

    \[\mathbf{u} \times(\boldsymbol{\nabla} \times \mathbf{u})=\frac{1}{2} \boldsymbol{\nabla}\left(\mathbf{u}^{2}\right)-(\mathbf{u} \cdot \boldsymbol{\nabla}) \mathbf{u} \nonumber \]

    This identity allows us to write

    \[(\mathbf{u} \cdot \boldsymbol{\nabla}) \mathbf{u}=\frac{1}{2} \boldsymbol{\nabla}\left(\mathbf{u}^{2}\right)-\mathbf{u} \times(\boldsymbol{\nabla} \times \mathbf{u}) \nonumber \]

    Taking the curl of both sides and making use of the curl of a gradient equals zero and \(\boldsymbol{\nabla} \times \mathbf{u}=\boldsymbol{\omega}\), results in

    \[\begin{aligned} \boldsymbol{\nabla} \times\{(\mathbf{u} \cdot \boldsymbol{\nabla}) \mathbf{u}\} &=-\boldsymbol{\nabla} \times(\mathbf{u} \times \omega) \\ &=\boldsymbol{\nabla} \times(\boldsymbol{\omega} \times \mathbf{u}) \end{aligned} \nonumber \]

    Combining all the above terms, we have thus obtained the vorticity equation

    \[\frac{\partial \omega}{\partial t}+\nabla \times(\omega \times \mathbf{u})=v \nabla^{2} \omega \nonumber \]

    An alternative form of the vorticity equation rewrites the convection term to explicitly include the substantive derivative. We have

    \[\begin{aligned} \{\boldsymbol{\nabla} \times(\omega \times \mathbf{u})\}_{i} &=\epsilon_{i j k} \frac{\partial}{\partial x_{j}} \epsilon_{k l m} \omega_{l} u_{m} \\ &=\epsilon_{k i j} \epsilon_{k l m} \frac{\partial}{\partial x_{j}}\left(\omega_{l} u_{m}\right) \\ &=\left(\delta_{i l} \delta_{j m}-\delta_{i m} \delta_{j l}\right) \frac{\partial}{\partial x_{j}}\left(\omega_{l} u_{m}\right) \\ &=\frac{\partial}{\partial x_{m}}\left(\omega_{i} u_{m}\right)-\frac{\partial}{\partial x_{l}}\left(\omega_{l} u_{i}\right) \\ &=u_{m} \frac{\partial w_{i}}{\partial x_{m}}-\omega_{l} \frac{\partial u_{i}}{\partial x_{l}} \end{aligned} \nonumber \]

    where to obtain the last equality we have used both \(\partial u_{m} / \partial x_{m}=0\) and \(\partial \omega_{l} / \partial x_{l}=0 .\) Therefore, in vector form,

    \[\nabla \times(\omega \times \mathbf{u})=(\mathbf{u} \cdot \nabla) \omega-(\omega \cdot \nabla) \mathbf{u} \nonumber \]

    The vorticity equation can then be rewritten as

    \[\frac{\partial \omega}{\partial t}+(\mathbf{u} \cdot \nabla) \omega=(\omega \cdot \nabla) \mathbf{u}+v \nabla^{2} \omega \nonumber \]

    Compared to the Navier-Stokes equation, there is an extra term, called the vortex stretching term, on the right-hand-side of (16.13).

    Two-dimensional Navier-Stokes equation

    We have already seen that in two dimensions, the incompressibility condition is automatically satisfied by defining the stream function \(\psi(\mathbf{x}, t)\). Also in two dimensions, the vorticity can be reduced to a scalar field. With \(\mathbf{u}=(u(x, y), v(x, y))\), we have

    \[\begin{aligned} \omega &=\nabla \times \mathbf{u} \\ &=\left|\begin{array}{ccc} \hat{\mathbf{x}} & \hat{\mathbf{y}} & \hat{\mathbf{z}} \\ \partial / \partial x & \partial / \partial y & \partial / \partial z \\ u(x, y) & v(x, y) & 0 \end{array}\right| \\ &=\hat{\mathbf{z}}\left(\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}\right) \\ &=\omega(x, y) \hat{\mathbf{z}}, \end{aligned} \nonumber \]

    where we have now defined the scalar field \(\omega\) to be the third component of the vector vorticity field. Making use of the stream function, we then have

    \[\begin{aligned} \omega &=\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y} \\ &=-\frac{\partial^{2} \psi}{\partial x^{2}}-\frac{\partial^{2} \psi}{\partial y^{2}} \end{aligned} \nonumber \]

    Therefore, in vector form, we have

    \[\nabla^{2} \psi=-\omega \nonumber \]

    where

    \[\nabla^{2}=\frac{\partial^{2}}{\partial x^{2}}+\frac{\partial^{2}}{\partial y^{2}} \nonumber \]

    is the two-dimensional Laplacian.

    Now, with \(\omega=\omega(x, y) \hat{\mathbf{z}}\), the third component of the vorticity equation (16.13) becomes

    \[\frac{\partial \omega}{\partial t}+(\mathbf{u} \cdot \nabla) \omega=v \nabla^{2} \omega \nonumber \]

    where the vortex stretching term can be seen to vanish. We can also write

    \[\begin{aligned} \mathbf{u} \cdot \nabla &=u \frac{\partial}{\partial x}+v \frac{\partial}{\partial y} \\ &=\frac{\partial \psi}{\partial y} \frac{\partial}{\partial x}-\frac{\partial \psi}{\partial x} \frac{\partial}{\partial y} \end{aligned} \nonumber \]

    The vorticity equation in two dimensions then becomes

    \[\frac{\partial \omega}{\partial t}+\left(\frac{\partial \psi}{\partial y} \frac{\partial \omega}{\partial x}-\frac{\partial \psi}{\partial x} \frac{\partial \omega}{\partial y}\right)=v \nabla^{2} \omega \nonumber \]

    For a stationary flow, this equation becomes the Poisson equation,

    \[\nabla^{2} \omega=\frac{1}{v}\left(\frac{\partial \psi}{\partial y} \frac{\partial \omega}{\partial x}-\frac{\partial \psi}{\partial x} \frac{\partial \omega}{\partial y}\right) \nonumber \]

    We have thus obtained for a stationary flow two coupled Poisson equations for \(\psi(x, y)\) and \(\omega(x, y)\) given by \((16.14)\) and \((16.18)\).

    Template:HideTOP

    16: Stream Function, Vorticity Equations is shared under a CC BY 3.0 license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?