Skip to main content
\(\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}}\)
Mathematics LibreTexts

7.5: Stream Functions

  • Page ID
  • \( \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}}\)

    In everything we did above poor old \(\psi\) just tagged along as the harmonic conjugate of the potential function \(\phi\). Let’s turn our attention to it and see why it’s called the stream function.

    Theorem \(\PageIndex{1}\)

    Suppose that

    \[\Phi = \phi + i\psi\]

    is the complex potential for a velocity field \(F\). Then the fluid flows along the level curves of \(\psi\). That is, the \(F\) is everywhere tangent to the level curves of \(\psi\). The level curves of \(\psi\) are called streamlines and \(\psi\) is called the stream function.


    Again we have already done most of the heavy lifting to prove this. Since \(F\) is the velocity of the flow at each point, the flow is always tangent to \(F\). You also need to remember that \(\nabla \phi\) is perpendicular to the level curves of \(\phi\). So we have:

    1. The flow is parallel to \(F\).
    2. \(F = \nabla \phi\), so the flow is orthogonal to the level curves of \(\phi\).
    3. Since \(\phi\) and \(\psi\) are harmonic conjugates, the level curves of \(\psi\) are orthogonal to the level curves of \(\phi\).

    Combining 2 and 3 we see that the flow must be along the level curves of \(\psi\).


    We’ll illustrate the streamlines in a series of examples that start by defining the complex potential for a vector field.

    Example \(\PageIndex{1}\): Uniform flow


    \[\Phi (z) = z. \nonumber\]

    Find \(F\) and draw a plot of the streamlines. Indicate the direction of the flow.



    \[\Phi = x + iy. \nonumber\]


    \[\phi = x \text{ and } F = \nabla \phi = (1, 0), \nonumber\]

    which says the flow has uniform velocity and points to the right. We also have

    \[\psi = y, \nonumber\]

    so the streamlines are the horizontal lines \(y =\) constant (Figure \(\PageIndex{1}\)).

    007 - (Example 7.6.1).svg
    Figure \(\PageIndex{1}\): Uniform flow to the right. (CC BY-NC; Ümit Kaya)

    Note that another way to see that the flow is to the right is to check the direction that the potential \(\phi\) increases. The Topic 5 notes show pictures of this complex potential which show both the streamlines and the equipotential lines.

    Example \(\PageIndex{2}\): Linear Source


    \[\Phi (z) = \log (z). \nonumber\]

    Find \(F\) and draw a plot of the streamlines. Indicate the direction of the flow.



    \[\Phi = \log (r) + i \theta.\nonumber\]


    \[\phi = \log(r) \text{ and } F = \nabla \phi = (x/r^2, y/r^2),\nonumber\]

    which says the flow is radial and decreases in speed as it gets farther from the origin. The field is not defined at \(z = 0\). We also have

    \[\psi = \theta,\nonumber\]

    so the streamlines are rays from the origin (Figure \(\PageIndex{2}\)).

    008 - (Example 7.6.2).svg
    Figure \(\PageIndex{2}\): Linear source: radial flow from the origin. (CC BY-NC; Ümit Kaya)

    Stagnation points

    A stagnation point is one where the velocity field is 0.

    Definition: Stagnation Points

    If \(\Phi\) is the complex potential for a field \(F\) then the stagnation points \(F = 0\) are exactly the points \(z\) where \(\Phi '(z) = 0\).

    Definition: Proof

    This is clear since \(F = (\phi_x, \phi_y)\) and \(\Phi ' = \phi_x - i \phi_y\).

    Example \(\PageIndex{3}\): Stagnation Points

    Draw the streamlines and identify the stagnation points for the potential \(\Phi (z) = z^2\).


    (We drew the level curves for this in Topic 5.) We have

    \[\Phi = (x^2 - y^2) + i2xy.\nonumber\]

    So the streamlines are the hyperbolas: \(2xy = \) constant. Since \(\phi = x^2 - y^2\) increases as \(|x|\) increases and decreases as \(|y|\) increases, the arrows, which point in the direction of increasing \(\phi\), are as shown in Figure \(\PageIndex{3}\).

    009 - (7.6.3).svg
    Figure \(\PageIndex{3}\): Stagnation flow: stagnation point at \(z = 0\). (CC BY-NC; Ümit Kaya)

    The stagnation points are the zeros of

    \[\Phi '(z) = 2z, \nonumber\]

    i.e. the only stagnation point is at the \(z = 0\).

    The stagnation points are also called the critical points of a vector field.

    This page titled 7.5: Stream Functions is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Jeremy Orloff (MIT OpenCourseWare) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.