Main content

## Multivariable calculus

### Course: Multivariable calculus > Unit 2

Lesson 11: Divergence and curl (articles)# Curl, fluid rotation in three dimensions

Curl is an operator which measures rotation in a fluid flow indicated by a three dimensional vector field.

## Background

Note: Throughout this article I will use the convention that

- start bold text, i, end bold text, with, hat, on top represents the unit vector in the x-direction.
- start bold text, j, end bold text, with, hat, on top represents the unit vector in the y-direction.
- start bold text, k, end bold text, with, hat, on top represents the unit vector in the z-direction.

## What we're building to

- Curl is an operator which takes in a function representing a three-dimensional vector field and gives another function representing a different three-dimensional vector field.
- If a fluid flows in three-dimensional space along a vector field, the rotation of that fluid around each point, represented as a vector, is given by the curl of the original vector field evaluated at that point. The curl vector field should be scaled by one-half if you want the magnitude of curl vectors to equal the rotational speed of the fluid.
- If a three-dimensional vector-valued function start bold text, v, end bold text, with, vector, on top, left parenthesis, x, comma, y, comma, z, right parenthesis has component functions start color #0c7f99, v, start subscript, 1, end subscript, end color #0c7f99, left parenthesis, x, comma, y, comma, z, right parenthesis, start color #bc2612, v, start subscript, 2, end subscript, end color #bc2612, left parenthesis, x, comma, y, comma, z, right parenthesis and start color #0d923f, v, start subscript, 3, end subscript, end color #0d923f, left parenthesis, x, comma, y, comma, z, right parenthesis, the curl is computed as follows:

## Describing rotation with a vector

If an object is rotating in two dimensions, you can describe the rotation completely with a single number: the angular velocity. A positive angular velocity indicates a counter-clockwise rotation while a negative number indicates a clockwise rotation. The absolute value of the angular velocity gives the speed of rotation, typically in radians per second.

For an object rotating in three dimensions, the situation is more complicated. We need to represent both angular velocity and the

*direction*in three-dimensional space in which the object is rotating.To do this, rotation in three dimensions is typically described using a single

**vector**. The magnitude of the vector indicates the angular speed, and the direction is determined by a super-important convention called the "right-hand rule"**RIGHT-HAND RULE**: Curl the fingers of your right hand in the direction of rotation, and stick out your thumb. The vector representing this three-dimensional rotation is, by definition, oriented in the direction of your thumb.

Your thumb should point along the axis of rotation. Adopting the convention of using the right hand instead of the left lets us encode the difference between a certain three-dimensional rotation, and the reverse rotation. Basically, it extends the idea of clockwise vs. counterclockwise into three dimensions.

For example, the rotation of the earth in space would be described using a vector pointing from the center of the earth to its north pole, whose length is equal to the angular speed of the earth's rotation (which happens to be 0, point, 0000729 radians/second).

## Two-dimensional fluid rotation revisited

In the curl warmup article, I introduce how fluid flows along a two-dimensional vector field defined by the function

The following animation gives a simulation of this, where fluid particles (drawn as blue dots) always move in the direction of the vector they are closest to. For the purposes of studying curl, notice what happens in and around the circled regions.

The fluid rotates counterclockwise in the left and right circles, and clockwise in the top and bottom circles. In studying curl, the key question is this:

**How much does the fluid rotate around each specific point left parenthesis, x, start subscript, 0, end subscript, comma, y, start subscript, 0, end subscript, right parenthesis in the plane?**In the last article, I gave an intuition for how the answer to this question is what you might call the

**2d-curl**of start bold text, v, end bold text, with, vector, on top, which has the following formula:Here, start color #0c7f99, v, start subscript, 1, end subscript, end color #0c7f99 and start color #bc2612, v, start subscript, 2, end subscript, end color #bc2612 are the components of the vector-valued function start bold text, v, end bold text, with, vector, on top. For example, with specific vector field given above, defined by left parenthesis, y, cubed, minus, 9, y, right parenthesis, start bold text, i, end bold text, with, hat, on top, plus, left parenthesis, x, cubed, minus, 9, x, right parenthesis, start bold text, j, end bold text, with, hat, on top, this answer would be

Notice, the result is a scalar-valued function. You plug in a point, like left parenthesis, 2, comma, 1, right parenthesis, and you get out a single number which indicates angular velocity of the fluid near your point, 3, left parenthesis, 2, right parenthesis, squared, minus, 3, left parenthesis, 1, right parenthesis, squared, equals, 12, minus, 3, equals, 9. As it turns out this number represents

*twice*the angular speed of the fluid near the point, so the speed of rotation is 4, point, 5 radians/second (more on this later). The important point that you get a single scalar describing the rotation.This should make sense because the rotation of a single object in two dimensions can be described with a single number (or scalar), so rotation around all possible points in a flowing fluid should be described with a

**scalar**-valued function.**Reflection question**: In the fluid flow animated above, does the fluid have a rotational component at the origin left parenthesis, 0, comma, 0, right parenthesis?

## Moving to three dimensions

In preparation for moving to three dimensions, let's express the fluid rotation above using vectors. Focus on a region of counterclockwise rotation, such as the right-most circle in the animation above. Imagine wrapping the fingers of your right hand around this circle, so they point in the direction of the arrows (counterclockwise in this case), and stick out your thumb. Your thumb should be pointing out of the page, in the positive z-direction, parallel to the unit vector start bold text, k, end bold text, with, hat, on top.

If we did this at every point, assigning a vector to the rotation around each point on the x, y-plane according to the formula start text, 2, d, negative, c, u, r, l, end text, start bold text, v, end bold text, with, vector, on top, left parenthesis, x, comma, y, right parenthesis, equals, 3, x, squared, minus, 3, y, squared, you would end up with something like this:

Vectors pointing in the positive z-direction indicate counterclockwise rotation near that point, and vectors pointing the other way indicate clockwise rotation, as viewed from above the x, y-plane. The length of each vector indicates the speed of that rotation. You could describe this system of vectors with the expression

This is almost a three-dimensional vector field, except that we are only looking at points on the x, y-plane, not in all of space.

**Curl itself only applies to three-dimensional vector fields**, so to properly set the stage for the material below, let's make this a fully three-dimensional example. To start, we extend our original vector-valued function start bold text, v, end bold text, with, vector, on top to a similar three-dimensional function start bold text, v, end bold text, with, vector, on top, start subscript, 3, d, end subscript.As three-dimensional vector fields go, this still feels very flat, doesn't it? The start bold text, k, end bold text, with, hat, on top component is 0 everywhere, and none of the components depend on the z input variable at all. We have basically just copied the original two-dimensional vector field onto every slice of three-dimensional space parallel to the x, y-plane.

The next video shows what that vector field start bold text, v, end bold text, with, vector, on top, start subscript, 3, d, end subscript looks like, where we keep the flat x, y-plane (drawn in grey) and red circles as reference points. Notice that at each layer parallel to the x, y-plane, the vectors are identical to the original vectors we had sitting in the x, y-plane from the purely 2d vector field start bold text, v, end bold text, with, vector, on top in the previous section.

Again, imagine this vector field as representing a fluid flow, like air in a room or water in a pool. When we represent the rotation of this fluid around each point with a vector attached to that point, we get a new vector field, as shown in the next video:

This is given by the vector-valued function

This is the same formula that we had before, left parenthesis, 3, x, squared, minus, 3, y, squared, right parenthesis, start bold text, k, end bold text, with, hat, on top, but the important point is that now we apply it to all points left parenthesis, x, comma, y, comma, z, right parenthesis in space, not just the points left parenthesis, x, comma, y, right parenthesis in the x, y-plane.

- The fact that the z-input does not influence the output reflects the fact that our fluid motion is the same in all slices of space parallel to the x, y-plane.
- The fact that the start bold text, i, end bold text, with, hat, on top and start bold text, j, end bold text, with, hat, on top components are 0 means all rotation vectors point purely in the z-direction, meaning all actual fluid rotation is parallel to the x, y-plane.

This new (blue) vector field start bold text, w, end bold text, with, vector, on top is called the "curl" of the initial (green) vector field start bold text, v, end bold text, with, vector, on top, start subscript, 3, d, end subscript. One way you might see this written is

This is our first example of honest-to-goodness three-dimensional curl:

**Curl, as a mathematical operator, takes in a three-dimensional vector-valued function start bold text, v, end bold text, with, vector, on top, start subscript, 3, d, end subscript, thought of as representing a fluid flow, and outputs another three-dimensional vector-valued function "start text, c, u, r, l, end text, start bold text, v, end bold text, with, vector, on top, start subscript, 3, d, end subscript" which represents the rotation near each point of that fluid**.## Visualizing fluid rotation in three dimensions

For a general fluid flow in three dimensions, the rotation may not always be purely parallel to the x, y-plane. This can make it hard to picture what's going on. Really hard.

For instance, imagine that the air around you is blowing and swirling in some chaotic motion. Now pick some specific point left parenthesis, x, start subscript, 0, end subscript, comma, y, start subscript, 0, end subscript, comma, z, start subscript, 0, end subscript, right parenthesis in space. How can you think about what "air rotation near that point" means?

Here are a couple of tactics:

- Imagine there is a tiny tennis ball whose center is fixed to the point left parenthesis, x, start subscript, 0, end subscript, comma, y, start subscript, 0, end subscript, comma, z, start subscript, 0, end subscript, right parenthesis, but which is free to rotate. Perhaps you have invented magic to hold it there, or otherwise have some sort of ingenious magnetic suspension device. The air blowing around it may cause it to spin in some way or another. The curl vector attached to that point will be the vector describing this tiny tennis ball's rotation, in the same way, we described the earth's rotation using a single vector above.

- Alternatively, take an archer's arrow with nice thick feathers. The kind you might imagine Robin Hood shooting. Situate the arrow in midair such that its feathers are at the point left parenthesis, x, start subscript, 0, end subscript, comma, y, start subscript, 0, end subscript, comma, z, start subscript, 0, end subscript, right parenthesis. Again, you've invented magic and finagle a way so that the base of the arrow is fixed to this point, but you are free to orient the arrow in any direction you want, and it freely rotates based on how the wind blows its feathers.

If you experiment with various orientations for the arrow and find the one direction in which the air currents cause the arrow to rotate the fastest, this is the direction of the curl vector at the point left parenthesis, x, start subscript, 0, end subscript, comma, y, start subscript, 0, end subscript, comma, z, start subscript, 0, end subscript, right parenthesis.

This is somewhat analogous to how the gradient points in the "direction of steepest ascent"; the curl points in the "direction of greatest rotation".

## Notation and formula for curl

Let's write start bold text, v, end bold text, with, vector, on top as a general vector-valued function, with three inputs left parenthesis, x, comma, y, comma, z, right parenthesis and a three-coordinate output. We will write this three-coordinate output in terms of three scalar valued functions: start color #0c7f99, v, start subscript, 1, end subscript, left parenthesis, x, comma, y, comma, z, right parenthesis, end color #0c7f99, start color #bc2612, v, start subscript, 2, end subscript, left parenthesis, x, comma, y, comma, z, right parenthesis, end color #bc2612, and start color #0d923f, v, start subscript, 3, end subscript, left parenthesis, x, comma, y, comma, z, right parenthesis, end color #0d923f.

The notation for curl uses the same symbol "del" used in the expressions for gradient and divergence, and once again we think of it as representing a vector of partial derivative operators:

The curl is thought of as the cross product of this "vector" and the function start bold text, v, end bold text, with, vector, on top, computed using the determinant as usual:

I know what you're thinking: "That's the funkiest determinant I've ever seen. None of the elements are even numbers! One row has vectors, one has operators, and one has functions. Can you even do that?" It's a bit weird, sure, but it works as a notational trick if nothing else.

## Intuition for the formula

Let's take a close look at this final result:

Notice, each component is like its own version of start text, 2, d, negative, c, u, r, l, end text operator we found in the curl warm up article. In fact, the start bold text, k, end bold text, with, vector, on top component has precisely the same formula as the start text, 2, d, negative, c, u, r, l, end text. This should make sense because the start bold text, k, end bold text, with, vector, on top-component of curl should measure the component of fluid rotation which is parallel to the x, y-plane.

Likewise, the start bold text, i, end bold text, with, hat, on top and start bold text, j, end bold text, with, hat, on top components measure the component of the fluid rotation parallel to the y, z and x, z planes respectively.

One little nuance I should point out is that when you evaluate the curl near a point to get a vector (thought of as a rotation vector), the magnitude of that vector does

**not**equal the angular speed of the imagined fluid near that point. Instead the magnitude is equal to**twice**the angular speed of the fluid.## Example: Finding rotation in a three-dimensional vector field using curl

**Problem**: Suppose a fluid flows in three dimensions according to the following vector field

Describe the rotation of the fluid near the point left parenthesis, 0, comma, 1, comma, 2, right parenthesis

**Step 1**: Evaluate curl (you may want some paper for this one).

**Step 2**: Plug in left parenthesis, 0, comma, 1, comma, 2, right parenthesis

**Step 3**: Interpret

## Summary

- Curl is an operator which takes in a function representing a three-dimensional vector field, and gives another function representing a different three-dimensional vector field.
- If a fluid flows in three-dimensional space along a vector field, the rotation of that fluid around each point, represented as a vector, is given by the curl of the original vector field evaluated at that point. The curl vector field should be scaled by a half if you want the magnitude of curl vectors to equal the rotational speed of the fluid.
- If a three-dimensional vector-valued function start bold text, v, end bold text, with, vector, on top, left parenthesis, x, comma, y, comma, z, right parenthesis has component function start color #0c7f99, v, start subscript, 1, end subscript, end color #0c7f99, left parenthesis, x, comma, y, comma, z, right parenthesis, start color #bc2612, v, start subscript, 2, end subscript, end color #bc2612, left parenthesis, x, comma, y, comma, z, right parenthesis and start color #0d923f, v, start subscript, 3, end subscript, end color #0d923f, left parenthesis, x, comma, y, comma, z, right parenthesis, the curl is computed as follows:

## Just for fun

Here's an animation of the fluid flow I showed at the very start of the article, but this time each dot is treated more accurately like a droplet of water, flexing and twisting based on how the vector field pulls on each individual particle in the droplet. I also took away the actual vectors from the vector field so that it's easier to see how the fluid moves. Hopefully this gives an impression for how complex yet beautiful the fluid-flow conception of vector fields can be.

## Want to join the conversation?

- Shouldn't the k-component of the curl be perpendicular on the xy-plane? It is stated in the article, that it is parallel to the plane. Likewise for the the i-component of the curl (perpendicular on the yz-plane, not parallel to it) and the j-component (perpendicular on thexz-plane, not parallel).(6 votes)
- What the article is saying is that the actual rotation is parallel to the plane, even though the curl vector is perpendicular.(28 votes)

- Hi. When you calculate the determinant of ∇×v, why do the 'j' component isn't negative? I have always seen 3x3 (nxn actually) determinants calculated as (a1b1 - c1d1) i - (a2b2 - 2c2d) j + (3a3b - 3c3d) k, but in yours, the second component (j) is positive. Why is it? Thanks!(11 votes)
- I wondered the same thing. The answer is that the order of the terms is also reversed.

- (a2b2 - 2c2d) j = (2c2d -a2b2)(11 votes)

- How do you make such beautiful animations? I'd love to play around with that kind of thing myself!(6 votes)
- He coded the entire thing in python. Have a look https://github.com/3b1b/manim(7 votes)

- In the "Two dimensional fluid rotation revisited" session, should the result "12-3=9 radians/second" the twice of the angular velocity near that point?

Thus, I mean the angular velocity is 4.5 rad/s.

Is that your mistake or I'm wrong?

Please help make it clear to me the connection between the magnitude of curl and the angular velocity in 2d space)(4 votes)- Yeah, that's a mistake on Khan Academy's part. However, it isn't that important because the overall point of that computation was to show that in 2 dimensions the answer is represented as a scalar.(2 votes)

- When calculating the angular momentum in three dimensions does the
*z_-component not also be needed to be take into account? ie should the angular momentum not be a*-component is zero, so the rotation is only with described by the**1/3**of the magnitude not**1/2**the magnitude of the curl vector. I accept that in this example the _z*x_ and _y*directions.(4 votes) - Hi, how do I get an intuition for the fact that the 'divergence of curl is always zero'. From the 3D intuition video, it seems we can construct a vector field such that the divergence of the resultant curl field is non-zero (like at the bottom plane we can have low curl and as we go up the curl goes up). I know I'm going wrong somewhere , but I'm not able to figure it out. Thanks!(3 votes)
- In the vicinity of a point where a field has nonzero curl, the "fluid" or whatever isn't going anywhere, it's just circulating. When a field has divergence, the "fluid" is heading from some point to somewhere else or from somewhere else to a point.(1 vote)

- How do we get angular velocity in radians/second if we haven't parametrized the vector-valued function? In other words, if we don't have a time component, how do we know the speed of the rotation at any given moment? Or does curl just give us rotational speed relative to other points in the field? I don't think it does, since we've specified that the angular speed is half the magnitude of curl, but I still don't see where we're getting our denominator from for that speed.(3 votes)
- I guess it is that the vectors represent velocity and it is presented in some common units like distance per second. What distance is it exactly does not matter to angular speed since it is expressed in radians (angle). Time in seconds is just an assumption.(1 vote)

- Hidden "Why twice the angular speed?": Doesn't del v2 / del x give angular speed of particles left and right of (x0, y0) (rather than above and below the point)?

Example's solution: one component -one- at a time.(2 votes) - "Imagine wrapping your fingers " ---> "Imagine wrapping the fingers of your right hand"(2 votes)
- why angular velocity is half of magnitude of curl?(2 votes)