I would like to extend a sincere and warm welcome back to our “Introduction to Flight” blog series. Today, we will return to fluid dynamics, which is a difficult, yet immensely fascinating subject. In our everyday lives, fluid flows are all around us, from the coffee in our cups, to the wind in the trees, to the air we breathe. In the laboratory, we can visualize flows by injecting smoke or dye into them, and these visualizations can yield beautiful patterns that appear like something out of an Impressionist painting. Today, I would like to discuss a couple of these patterns and delve into the mathematics that we can use to uncover dominant structures in complicated flows.

When air or water flows around a cylinder at Reynolds numbers between 10^{2} and 10^{5}, a consistent pattern of vortices appear behind the cylinder’s back surface. This pattern of vortices is called a Kármán vortex street, and new vortices pop up at a consistent frequency, f. Similar patterns appear in flows around a variety of bluff bodies, no matter how large they may be. See, for example, this picture of clouds moving past an island in the Pacific. To compare these Kármán vortex patterns behind objects of varying scales, we can define a Strouhal number, St, according to the relation

St = L f / U.

In this equation, L is a characteristic streamwise length scale for our object. For the flow past a cylinder, we typically let L be the diameter of the cylinder. Meanwhile, U represents the speed of the flow. The Strouhal number is useful because it characterizes frequency of vortex shedding while also effectively normalizing the frequency by the size of the object and the speed of the flow.

Another interesting flow phenomenon to study are Kelvin-Helmholtz instabilities, which are lines of small vortices that develop when fluid moving at one velocity comes into contact with fluid moving at another velocity. To understand how these instabilities occur, we can consider a tiny fluid element sitting on the boundary of the interaction between these two fluids moving at different speeds. Suppose the fluid on top is moving faster than the fluid on the bottom. Then, the top of our fluid element will want to move faster than the bottom. In turn, our fluid element will rotate in a roughly circular pattern. When considering all fluid elements on the boundary, it then makes sense that these vortices develop. While we cannot see them, these Kelvin-Helmholtz instabilities appear everywhere. When we whistle, we blow air out of our mouths that moves faster than the air that is around us. It follows, then, that Kelvin-Helmholtz instabilities develop where this fast-moving air interacts with the slower air in our surroundings.

Now consider the flow around an airfoil moving at 100 m/s at a moderate angle of attack. This flow is highly turbulent and disordered. Our task now is to understand this flow by peeling back its layers, and decomposing it into “coherent structures” that persist through all of the messiness. To explain how we would do this, let’s establish an experimental setup.

Suppose we have a very high-speed camera that has captured snapshots of the flow at one-millisecond intervals over the course of one second. Assume further that at each point in time, our camera has captured the positions of 1,000 particles that are initially evenly-spaced. Using a numerical analysis program, such as PIVLab, we can estimate the velocity of each particle at each point of time. Now, at each step in time, let’s collect all of the velocity information into one massive column vector, **x**_{i}. We will call **x**_{i} our state vector for the i-th time slot. Since we have data at one-millisecond intervals over the course of one second, we know that we have 1,000 time slots. Therefore, the index “i” can be any integer from 1 to 1,000. Now suppose we can create an optimal *linear* operator, A, that maps our fluid in the i-th time slot to our fluid in the (i+1)-th time slot according to the rule:

**x**_{i+1} = A **x**_{i}.

We can call each **x**_{i} an element of our “state space,” which characterizes all possible velocities (horizontal and vertical components included) of particles in our fluid. Since the **x**_{i}’s are elements of a finite-dimensional vector space, we can represent the operator A by a matrix. In general, a matrix both stretches and rotates a vector. However, there are some special vectors in our state space that are only stretched, and not rotated by A. We will call these vectors the *eigenvectors *of A. If **v **is an eigenvector of A, then **v** is not the zero vector and

A **v** = λ **v**.

The real number λ represents the amount by which A scales **v**, and we can call λ the *eigenvalue* associated to the eigenvector **v**. Using advanced algorithms, such as Dynamic Mode Decomposition (DMD), we can extract the eigenvalues and eigenvectors of A. Since these eigenvectors are “not influenced too much by A”, we can interpret each **v** as representing a state of the flow that is dominant as the flow proceeds forward in time. In this sense, the eigenvectors of the linear operator A represent the dominant patterns, or “*modes*,” of the flow. The eigenvalue associated to each mode characterizes the stability of the mode. If the λ for a particular **v** is extremely positive, then the fluid pattern described by **v** is unstable in time, and will amplify more and more and more. However, if the λ for a particular **v** is extremely negative, then that flow pattern will settle at a steady state, and remain stable through time. If λ is a complex number, then the flow pattern described by **v** will be oscillatory in nature, with frequency characterized by the imaginary part of λ.

Next week, I will try to develop all of these concepts further. Since I am myself and learning a lot of this content in real time, I am doing my best to explain everything as well as I can. I am sure that in a few weeks time, I can be much more clear and concrete in my explanations. Until we meet again, please take care.

## Leave a Reply