Having considered the analytical solution for a planar, incompressible vortex sheet, we now add one additional step of complexity to the problem. Rather than assuming an infinitely thin layer of vorticity separating the two flows, we will now consider a more realistic velocity profile, where the action of viscosity serves to smear the interface into a continuous, rather than discontinuous, variation in velocity.
Image goes here.
Our task is now to consider the stability of this very simple system. For our purposes here, we will consider the most basic possible analysis, which is to assume that the fluid is both inviscid and incompressible. The analysis we are going to conduct, is to consider the equations of motion that describe this system, we will then linearize the system, and consider the response of this linear system to infinitely small perturbations; if the system grows in response to an infinitely small perturbation, it is unstable. To determine if this system is stable, we will undertake the following steps:
- Establish the equations of motion.
- Linearize these equations of motion.
- Propose an ansatz (a model solution) and substitute it into our linearized equations
- Obtain an ordinary differential equation from re-arranging our linearized equations
- Impose appropriate boundary conditions to reframe the problem as an eigenvalue problem
- Solve the eigenvalue problem to determine the stability of the system
To signpost what we’ll be doing, here it is represented diagramatically.
Establish the equations of motion.
We follow the same initial process as when considering the vortex-sheet approximation, beginning with the governing equations. However, we will now include the effects of viscosity in the momentum equation. We will also put the equations in a non-dimensional form:
Put an explanation of the non-dimensionalization step here.
Conservation of Mass in Vector Form (2D, Incompressible)
Conservation of X-Momentum in Vector Form (2D, Incompressible)
Conservation of Y-Momentum in Vector Form (2D, Incompressible)
Here and
are our velocity components in the
and
direction, and
is a vector of these velocities
.
And that’s it, these are our equations of motion!
Linearize the equations of motion.
As a first step towards linearization, we now apply the Reynolds Decomposition to these equations, meaning we decompose all variables () into a temporal mean
and fluctuating
component.
Here we arrive at the first key difference between our approach here and the vortex-sheet approximation; our mean velocity now is some function of our transverse co-ordinate y
Substituting this definition into our continuity equation:
Conservation of Mass – Reynolds Decomposition
Thus our equation reduces to:
Conservation of x-momentum – Reynolds Decomposition
We now apply the same decomposition to the x-momentum equation.
Becomes:
That’s a long one. We can cross out most of these terms however:
This finishes our linearization of the x-momentum equation:
Conservation of y-momentum – Reynolds Decomposition
Following the same steps as the x-momentum decomposition and substitution yields:
Linearized Incompressible 2D Equations of Motion
Reduce to a single equation
At this point, we could continue with the same process we followed in deriving the vortex-sheet relation, i.e. proposing an ansatz and formulating an eigenvalue problem. However, unlike the vortex sheet, we can now no longer reach an analytical solution, and instead will need to solve our system numerically. Prior to doing this, it is possible to re-arrange the three equations above into a single equation; when stability was first being studied, without access to computers, it was necessary to do this to make the problem more tractable. We will follow the same process here, though it is not strictly necessary with modern computational resources.
To reduce to a single equation, we need also reduce our number of unknowns. We have three unknowns at present: . We will now perform some mathematical tricks and re-arrangements to remove both
and
, leaving us with a single equation. This next part is not necessarily very intuitive, it may be easiest to just think “It’s necessary to do some fancy mathematical manipulation to make the problem simpler”. Luckily for us, these tricks were worked out long before we were born.
We will perform two separate steps on our path to a single equation representation
I. Take the divergence of the linearized momentum equations to remove .
II. Take the Laplacian of the transverse momentum (y-momentum) equation to remove
I. Take the divergence of the linearized momentum equations.
(3)
Considering that due to the assumption of homogeneity in x, this resolves to:
(4)
Similarly:
(5)
Resolves to:
(6)
These can be set equal to each other, and then some like terms collected:
(7)
At first glance, this may not seem like it has simplified much at all. But let’s bring back our colour encoding:
(8)
This is our linearized conservation of mass equation, which we know equals zero:
Therefore we can massively simplify this expression:
(9)
This might seem almost unrecognizable, but this is just a compact form of our linearized conservation of momentum in the x and y directions! We have not changed what we are saying about the physics at all, we’ve just used some mathematical tricks to remove the component, and condense the two equations into one.
II. Take the Laplacian of the linearized y-momentum equation.
We now undertake our second bit of mathematical trickery, seeking to remove the component in the expression, on our journey to reduce this to a single equation. Here, we will take the Laplacian of the linearized y-momentum equation:
To do this, we will need to make use of a vector-calculus identity:
This might be a pretty scary looking equation, but like many of the steps here, this is only a short stopover on the way to something simple and elegant. We can pull some terms together by considering the convective/material derivative , and by remembering our base flow does not vary in the x-direction, so:
Substituting:
Given our assumption of locally parallel flow, , which removes one term
We can now take our result from calculating the divergence of the linearized momentum equations:
(10)
and use this to calculate the term:
(11)
and substitute this into the Laplacian of our linearized y-momentum equation:
Our four terms outside the convective derivative on the LHS reduce to one, leaving us with:
Stop for a moment and consider, that we have reduced a system of three equations and three unknowns to a single equation in terms of a single unknown (), without removing any of the physics. This expression contains our original physical laws: the conservation of mass, and of momentum in both the x and y directions. We now work towards a numerical solution of this equation.
Propose an ansatz
At this point in the vortex-sheet problem, we imposed a normal-mode ansatz with a post-hoc justification “perturbations look like waves, so let’s assume the solution is wavelike.”
At this stage, we will apply a little more rigour on the mathematical side. Our problem has three dimensions (x,y,t), and two of these are homogenous (x,t) due to the assumptions underpinning our problem; we have assumed a locally parallel flow, which means no variation in x, thus x is a homogenous direction. Our base state is time invariant, thus time can also be taken as homogenous. Given we have two homogenous dimensions, we can represent these dimensions on a Fourier basis; as y is not homogenous, we cannot represent it on a Fourier basis. Thus our normal mode ansatz includes some functional description of our variables in the y-direction, and a Fourier representation of x and t. For our state variables , our ansatz is:
Remembering from our vortex-sheet derivation, key outcomes of assuming a normal-mode ansatz for a linear system are:
- Each normal mode satisfies the linear system, and can thus be treated independently – the solutions are independent.
- The summation of all the individual normal modes represents the complete motion of the system.
When dealing with stability theory, different texts (and sometimes even the same text in different chapters) will switch between defining the ansatz in terms of frequency or phase speed
, which are linked to wavenumber
by the dispersion relation:
Here we will use the ansatz in the form:
This is identical to our previous ansatz, just expressed in terms of phase velocity rather than frequency.
Now that we have our linearized equation and our ansatz, the next step is to substitute the ansatz into these linearized equations
Ansatz Substitution
To substitute our ansatz into our single-equation expression of the linearized conservation laws, we need to consider how the various derivative operators act on our ansatz.
Now it is simply a matter of substituting these terms into our linearized equations of motion.
Becomes
Divide both sides by , and we have the goal we have been working towards, the Orr-Sommerfeld equation, which rather than being a partial differential equation, is a fourth-order ordinary differential equation:
If we take the inviscid limit, setting viscosity to zero by setting the Reynolds number to infinity, we reduce to the Rayleigh equation, a second-order ordinary differential equation:
Solving the Rayleigh Equation
Unlike our vortex-sheet problem, we cannot produce an analytical solution to either the Rayleigh or Orr-Sommerfeld equations. Instead, we will solve them numerically. To do this, we will turn our ODE into a matrix problem. We will start with the simpler case of the Rayleigh equation, which reduces our problem to second order.
We want to cast our problem in the form:
Where L and F are blah
To do this we re-arrange our Rayleigh equation such that c appears on the right-hand side:
We define a differential operator matrix D, and then we can write this as:
Now our task is to build the matrices that will allow us to solve this as an eigenvalue problem. For our example here, we will use Matlab, though this could just as easily be done in Python.
First, let us define the velocity profile whose stability we are considering; these equations require a base flow. Though we have only referenced it obliquely, strictly the Rayleigh equation is only applicable to a laminar solution of the full non-linear Navier-Stokes equations (though we will use it for other things as well). One such solution, is a hyperbolic-tangent function defined as:
Which looks like this:
First we will define the grid over which we will discretise the problem. There are many ways one could discretize a problem like this numerically, with the leading candidates being a classical finite -difference scheme, or what we will use, which is polynomial interpolants. Getting into the “why” is beyond the scope of this course, we will simply state that for many of the problems we consider, polynomial interpolant schemes using Chebyshev Polynomials converge much faster than finite-difference schemes. The reason for this is that the derivative of a Chebyshev polynomial is calculated using information from every point on the grid. Matlab has an inbuilt cheb function which we will use here:
[D,y]=cheb(N)
This defines our grid (y), and its differentiation matrix (D).
We calculate our baseflow as:
u = 0.5*(1+tanh(y))
We then calculate our second-derivative matrix simply as
D2 = D*D;
What are our “differentiation matrices”? They are expressions of the first and second derivatives
for the particular grid we have defined on y. To demonstrate this, we calculate the derivatives of our discretised function
, and plot them against the analytical derivatives of our tanh function:
Hopefully this makes it a little more intuitive; our differential matrices D and D2 are a simply a numerical implementation of a derivative calculation.
Now we will construct our matrices L and F. Here we need to consider our linear algebra carefully. We have defined our velocity profile as a column vector of size , while our D2 matrix is a square matrix
. If we first consider
, we can directly evaluate this. To illustrate, we will reduce it to a 3 x 3 matrix, though any realistic Chebyshev grid will have many more points:
The square matrix operates on the vector of velocities to produce a column vector containing the second derivative of the velocity at each point on the original grid, represented in a column vector of size .
We now consider . This is a column vector of
, multiplied by a single scalar value
, meaning our L2 would come out as a column vector of size
. This is the same size as our
, so there is no issue there.
However, moving to we have to be somewhat more careful. This is the product of an
column vector with a square matrix of size
. This is not an operation we can perform, so we will need to transform one of our two matrices. We need to preserve the size of our differentiation matrix D2, as it needs to be able to operate on a variable defined on our column vector of size
. What we want is for each row of
to be multiplied by the mean velocity at that grid point
. The way to do this is to turn our column vector for
into a diagonal matrix:
U = diag(u);
We can then calculate L1 as:
L1 = U*D2;
Now that our matrix is square, we need our
and L_3
L_2
L_1
L_3
(N+1,1)
u(y)
u
d^2u/dy^2$, and diagonalize the output, rather than the input:
L3 = -1*diag(D2*u);
To construct our F matrix, we define F1:
F1 = D^2
F2 is simply a scalar quantity, which needs to be added to a square matrix. The appropriate way to do this is to put the scalar quantity on the diagonal terms, which we can do by multiplying the scalar by the identify matrix, such that:
F2 = -k^2 * eye(size(D2));
If any step of this was unclear, please let me know. The purpose of this section is to be a basic introduction to the material; no question is too basic, no question is “stupid”.