If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

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
  • i^ represents the unit vector in the x-direction.
  • j^ represents the unit vector in the y-direction.
  • k^ 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 v(x,y,z) has component functions v1(x,y,z), v2(x,y,z) and v3(x,y,z), the curl is computed as follows:
    ×vNotation for curl=(v3yv2z)i^+(v1zv3x)j^+(v2xv1y)k^

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.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
v(x,y)=[y39yx39x]=(y39y)i^+(x39x)j^
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.
Khan Academy video wrapper
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 (x0,y0) 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 v, which has the following formula:
2d-curlv(x0,y0)=v2x(x0,y0)v1y(x0,y0)
Here, v1 and v2 are the components of the vector-valued function v. For example, with specific vector field given above, defined by (y39y)i^+(x39x)j^, this answer would be
(x39x)x(y39y)y=3x29(3y29)=3x23y2
Notice, the result is a scalar-valued function. You plug in a point, like (2,1), and you get out a single number which indicates angular velocity of the fluid near your point, 3(2)23(1)2=123=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.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 (0,0)?
Choose 1 answer:

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 k^.
If we did this at every point, assigning a vector to the rotation around each point on the xy-plane according to the formula 2d-curlv(x,y)=3x23y2, you would end up with something like this:
Khan Academy video wrapper
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 xy-plane. The length of each vector indicates the speed of that rotation. You could describe this system of vectors with the expression
(3x23y2)k^
This is almost a three-dimensional vector field, except that we are only looking at points on the xy-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 v to a similar three-dimensional function v3d.
v3d(x,y,z)=[y39yx39x0]=(y39y)i^+(x39x)j^+(0)k^
As three-dimensional vector fields go, this still feels very flat, doesn't it? The k^ 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 xy-plane.
The next video shows what that vector field v3d looks like, where we keep the flat xy-plane (drawn in grey) and red circles as reference points. Notice that at each layer parallel to the xy-plane, the vectors are identical to the original vectors we had sitting in the xy-plane from the purely 2d vector field v in the previous section.
Khan Academy video wrapper
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:
Khan Academy video wrapper
This is given by the vector-valued function
w(x,y,z)=(0)i^+(0)j^+(3x23y2)k^
This is the same formula that we had before, (3x23y2)k^, but the important point is that now we apply it to all points (x,y,z) in space, not just the points (x,y) in the xy-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 xy-plane.
  • The fact that the i^ and j^ components are 0 means all rotation vectors point purely in the z-direction, meaning all actual fluid rotation is parallel to the xy-plane.
This new (blue) vector field w is called the "curl" of the initial (green) vector field v3d. One way you might see this written is
w=curlv3d
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 v3d, thought of as representing a fluid flow, and outputs another three-dimensional vector-valued function "curlv3d" 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 xy-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 (x0,y0,z0) 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 (x0,y0,z0), 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 (x0,y0,z0). 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 (x0,y0,z0).
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 v as a general vector-valued function, with three inputs (x,y,z) and a three-coordinate output. We will write this three-coordinate output in terms of three scalar valued functions: v1(x,y,z), v2(x,y,z), and v3(x,y,z).
v(x,y,z)=[v1(x,y,z)v2(x,y,z)v3(x,y,z)]=v1(x,y,z)i^+v2(x,y,z)j^+v3(x,y,z)k^
The notation for curl uses the same symbol "" used in the expressions for gradient and divergence, and once again we think of it as representing a vector of partial derivative operators:
=[xyz]
The curl is thought of as the cross product of this "vector" and the function v, computed using the determinant as usual:
curlv=×v=[xyz]×[v1(x,y,z)v2(x,y,z)v3(x,y,z)]=det([i^j^k^xyzv1v2v3])=(v3yv2z)i^+(v1zv3x)j^+(v2xv1y)k^
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:
curlv=(v3yv2z)i^+(v1zv3x)j^+(v2xv1y)k^
Notice, each component is like its own version of 2d-curl operator we found in the curl warm up article. In fact, the k component has precisely the same formula as the 2d-curl. This should make sense because the k-component of curl should measure the component of fluid rotation which is parallel to the xy-plane.
Likewise, the i^ and j^ components measure the component of the fluid rotation parallel to the yz and xz planes respectively.
(v3yv2z)i^ Rotational component parallel to the yz-plane (v1zv3x)j^ Rotational component parallel to the xz-plane (v2xv1y)k^ Rotational component parallel to the xy-plane 
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
v(x,y,z)=(x3+y2+z)i^+(zex)j^+(xyz9xz)k^
Describe the rotation of the fluid near the point (0,1,2)
Step 1: Evaluate curl (you may want some paper for this one).
×v=
i^+
j^+
k^

Step 2: Plug in (0,1,2)
×v(0,1,2)=
i^+
j^+
k^

Step 3: Interpret
Near the point (0,1,2), the fluid rotation is about
radians per second, with rotation nearly parallel to the

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 v(x,y,z) has component function v1(x,y,z), v2(x,y,z) and v3(x,y,z), the curl is computed as follows:
    ×v=(v3yv2z)i^+(v1zv3x)j^+(v2xv1y)k^

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.
Khan Academy video wrapper

Want to join the conversation?

  • spunky sam blue style avatar for user Teodor Chiaburu
    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).
    (7 votes)
    Default Khan Academy avatar avatar for user
  • piceratops seedling style avatar for user felipe.a.montoya
    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)
    Default Khan Academy avatar avatar for user
  • leaf blue style avatar for user Zaz Brown
    How do you make such beautiful animations? I'd love to play around with that kind of thing myself!
    (6 votes)
    Default Khan Academy avatar avatar for user
  • aqualine seed style avatar for user Xin Fu
    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)
    Default Khan Academy avatar avatar for user
  • piceratops ultimate style avatar for user John Biberman
    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.
    (4 votes)
    Default Khan Academy avatar avatar for user
  • orange juice squid orange style avatar for user Romster%Monster
    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 1/3 of the magnitude not 1/2 the magnitude of the curl vector. I accept that in this example the _z-component is zero, so the rotation is only with described by the x_ and _y directions.
    (4 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user Aaron Goldsmith
    "Imagine wrapping your fingers " ---> "Imagine wrapping the fingers of your right hand"
    (4 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user choiceortruth
    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)
    Default Khan Academy avatar avatar for user
    • blobby green style avatar for user Danny
      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.
      (2 votes)
  • hopper jumping style avatar for user wrwrwr
    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)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user surajb
    why angular velocity is half of magnitude of curl?
    (2 votes)
    Default Khan Academy avatar avatar for user