I would like to warmly welcome all of my readers back to this week’s session. Last time, we briefly discussed the relationship between Laplace’s equation (∆u = ∂2u/∂x2 + ∂2u/∂y2 = 0) and fluid flows that are irrotational and have no sources or sinks. This week, I would like to develop this topic further and build up more of the background knowledge necessary to understand it. For the sake of being as general as possible, our analysis today will concern three-dimensional fluid flows.
We will begin by considering a scalar function of three spatial variables f(x,y,z). We would like to have at our disposal as many tools as possible to understand the behavior of such a function. One tool we have already is the partial derivative. By computing ∂f/∂x, ∂f/∂y, or ∂f/∂z, we can see how our function changes as we change one variable but keep our other variables fixed. Partial derivatives by themselves can be a bit limiting though, because they do not encompass the whole way in which our function is changing.
In order to get a better picture of how f(x,y,z) behaves, we can define the ∇ (nabla) operator, which will act on multivariable functions. Specifically, we write the following, where i, j, and k are unit vectors in the x, y, and z directions, respectively: (Note again that the bold i is a vector, and is different from the unbolded i = sqrt(-1).)
∇ = ∂/∂x i + ∂/∂y j + ∂/∂z k.
We can think of this ∇ operator as a vector whose components consist of the partial derivative operators for each of our spatial variables.
We will then define the gradient of f to be:
∇f = ∂f/∂x i + ∂f/∂y j + ∂f/∂z k.
Since ∇f is a vector, it has both direction and magnitude. The direction of the gradient of f is the direction we should walk in xyz-space in order for the value of f(x,y,z) to increase the fastest. Meanwhile, the magnitude of ∇f represents the magnitude of this maximum rate of change of f at a point (x,y,z). It is important to remember that because f(x,y,z) is a multivariable function, it has infinitely many rates of change at a given point. The gradient of f, then, specifically gives the maximum rate of change of f(x,y,z) and the direction we should travel in our input space in order to achieve this maximum rate of change in our output space.
We can now shift our attention to a vector field F(x,y,z) = <P(x,y,z), Q(x,y,z), R(x,y,z)>. We can recall that to each point in space, F(x,y,z) assigns a vector whose x-component is the function P(x,y,z), y-component is the function Q(x,y,z), and z-component is the function R(x,y,z). We can now apply the ∇ operator on F in two different ways.
The divergence of F is defined as:
div(F) = ∇ • F = <∂/∂x, ∂/∂y, ∂/∂z> • <P, Q, R> = ∂P/∂x + ∂Q/∂y + ∂R/∂z.
Here, we are taking what is called the dot product of the ∇ operator with F, and we can think of div(F) as a scalar quantifying whether there are sources or sinks in our vector field F. If we fix a point (x0, y0, z0) in space, then we have a source at (x0, y0, z0) if div(F) > 0 at that point. This means that at (x0, y0, z0), we have vectors popping out of nowhere and expanding outwards. Meanwhile, we have a sink at (x0, y0, z0) if div(F) < 0 at that point. If div(F) = 0 at (x0, y0, z0), then we can say that (x0, y0, z0) is neither a source nor a sink, and that there are no vectors popping out of nowhere or disappearing suddenly into nowhere.
The curl of F can be defined as:
curl(F) = ∇ x F = (∂R/∂y – ∂Q/∂z) i + (∂P/∂z – ∂R/∂x) j + (∂Q/∂x – ∂P/∂y) k.
What we are essentially doing here is taking what we call the cross product of the ∇ operator with F. What is most important to understand is that curl(F) is a vector whose direction determines the axis of local rotation in the fluid flow. Therefore, when curl(F) = 0 at a particular point (where 0 = <0,0,0> is the zero vector), we know that there is no local rotation in the vector field F at that point. Meanwhile, if curl(F) ≠ 0 at a point (x0, y0, z0), then if we dropped a stick into our vector field F at (x0, y0, z0), our stick would start rotating.
We will now apply the mathematical concepts of gradient, divergence, and curl to a vector field V(x,y,z)= <u(x,y,z), v(x,y,z), w(x,y,z)> which characterizes the velocity of a fluid in three-dimensional space. We will assume that our flow is well-behaved, which for us means that it has a constant density, mass is conserved and we have no local rotation.
If mass is conserved, then it wouldn’t make sense for fluid to be appearing out of nowhere at one point or suddenly disappearing at another point. Therefore, saying that mass is conserved in a fluid flow (with constant density) is synonymous with saying that div(V) = 0.
Meanwhile, saying that our flow is irrotational is the same as saying that it has zero vorticity, or in other words, curl(V) = 0.
We will now introduce the concept of a velocity potential. We will say that some scalar function φ(x,y,z) is a potential function for our vector field V(x,y,z) if the following is true:
V = ∇φ.
In particular, we have:
V = <u(x,y,z), v(x,y,z), w(x,y,z)> = <∂φ/∂x, ∂φ/∂y, ∂φ/∂z> = ∇φ.
This idea of writing V as the gradient of φ is important because as long as φ satisfies Laplace’s equation, φ(x,y,z) will automatically encode both the conservation of mass and irrotationality of our fluid flow.
We can first observe how if ∆φ = 0, then mass is conserved in our flow:
div(V) = ∇ • ∇φ = ∂/∂x(∂φ/∂x) + ∂/∂y(∂φ/∂y) + ∂/∂z(∂φ/∂z) = ∂2φ/∂x2 + ∂2φ/∂y2 + ∂2φ/∂z2
= ∆φ = 0.
Simultaneously, the fact that V = ∇φ means that curl(V) = 0. We can observe:
curl(V) = ∇ x ∇φ = (∂2φ/∂y∂z – ∂2φ/∂z∂y) i + (∂2φ/∂z∂x – ∂2φ/∂x∂z) j + (∂2φ/∂x∂y – ∂2φ/∂y∂x) k.
According to Clairaut’s Theorem, we have that ∂2φ/∂y∂z = ∂2φ/∂z∂y, and ∂2φ/∂z∂x = ∂2φ/∂x∂z, and finally ∂2φ/∂x∂y = ∂2φ/∂y∂x. Therefore, we can reach our result that:
curl(V) = ∇ x ∇φ = 0.
It is important to remark here that it is not necessary for φ to satisfy Laplace’s equation if we only need V to be irrotational. However, it is necessary for φ to satisfy Laplace’s equation if our flow has constant density (ie. is incompressible) and we want mass to be conserved.
While I would love to continue our discussion, we have just about run out of space. Therefore, we will pick up next week by connecting the concept of velocity potentials to the Cauchy-Riemann equations and the concept of conjugate harmonic functions. Until then, take care.