Two-dimensional channel flow (Orr-Sommerfeld operator)
|
Two-dimensional channel flow geometry.
|
The Orr-Sommerfeld equation governs the dynamics of two-dimensional velocity
fluctuations around the laminar channel flow,
where
| — | streamfunction |
, | — | streamwise and wall-normal forcing |
| — | Reynolds number |
| — | streamwise wavenumber |
| — | for shear-driven flow |
| — | for pressure-driven flow |
| — | Laplacian |
. |
| | |
|
The boundary conditions are given by
The desired outputs are the streamwise and wall-normal velocity fluctuations,
The input-output differential equation representing the frequency response operator is given by
where
Matlab codes
Find the largest singular value of the frequency response operator for the Orr-Sommerfeld equation
in a pressure-driven channel flow as a function of at .
R = 2000;
kxval = linspace(0.1,5,100);
kxgrd = length(kxval);
om = -0.3;
dom = domain(-1,1);
y = chebfun('y',dom);
fone = chebfun(1,dom);
fzero = chebfun(0,dom);
U = diag(1 - y.^2);
Uy = diag(-2*y);
Uyy = diag(-2*fone);
Wa0{1} = [1, 0, 0, 0; 0, 1, 0, 0];
Wb0{1} = [1, 0, 0, 0; 0, 1, 0, 0];
Smax = zeros(kxgrd,1); A0 = cell(1,1); B0 = cell(1,2); C0 = cell(2,1);
for indx = 1:kxgrd
kx = kxval(indx); kx2 = kx*kx; kx4 = kx2*kx2;
a2 = -(2*kx2*(1/R)*fone + 1i*kx*U*fone + 1i*om*fone);
a0 = (1/R)*kx4*fone + 1i*kx*kx2*U*fone + 1i*kx*Uyy*fone + ...
1i*om*kx2*fone;
A0{1} = [a0, fzero, a2, fzero, (1/R)*fone];
B0{1,1} = [fzero, -fone]; B0{1,2} = [1i*kx*fone, fzero];
C0{1,1} = [fzero, fone]; C0{2,1} = [-1i*kx*fone, fzero];
[Sfun, Sval] = svdfr(A0,B0,C0,Wa0,Wb0,1,1);
Smax(indx) = Sval(1);
end
plot(kxval,Smax,'-','LineWidth',1.1);
xlab = xlabel('k_x', 'interpreter', 'tex');
set(xlab, 'FontName', 'cmmi10', 'FontSize', 20);
h = get(gcf,'CurrentAxes');
set(h,'FontName','cmr10','FontSize',15,'xscale','log','yscale','lin');
|
|
Find the largest singular value of the frequency response operator for the Orr-Sommerfeld equation
in a pressure-driven channel flow as a function of at .
kx = 1;
kx2 = kx*kx; kx4 = kx2*kx2;
omval = linspace(-0.5,0,100);
omgrd = length(omval);
Smax = zeros(omgrd,1); A0 = cell(1,1); B0 = cell(1,2); C0 = cell(2,1);
for indom = 1:omgrd
om = omval(indom);
a2 = -(2*kx2*(1/R)*fone + 1i*kx*U*fone + 1i*om*fone);
a0 = (1/R)*kx4*fone + 1i*kx*kx2*U*fone + 1i*kx*Uyy*fone + ...
1i*om*kx2*fone;
A0{1} = [a0, fzero, a2, fzero, (1/R)*fone];
B0{1,1} = [fzero, -fone]; B0{1,2} = [1i*kx*fone, fzero];
C0{1,1} = [fzero, fone]; C0{2,1} = [-1i*kx*fone, fzero];
[Sfun, Sval] = svdfr(A0,B0,C0,Wa0,Wb0,1,1);
Smax(indom) = Sval(1);
end
plot(omval,Smax,'-','LineWidth',1.1);
xlab = xlabel('\omega', 'interpreter', 'tex');
set(xlab, 'FontName', 'cmmi10', 'FontSize', 20);
h = get(gcf,'CurrentAxes');
set(h,'FontName','cmr10','FontSize',15,'xscale','lin','yscale','lin');
Find the most amplified flow structures for the Orr-Sommerfeld equation in a pressure-driven channel flow
at and .
kxval = [1 -1];
omval = 0.313*[-1 1];
N = 100;
yd = chebpts(N);
A0 = cell(1,1); B0 = cell(1,2); C0 = cell(2,1);
for n = 1:2
om = omval(n);
kx = kxval(n); kx2 = kx*kx; kx4 = kx2*kx2;
a2 = -(2*kx2*(1/R)*fone + 1i*kx*U*fone + 1i*om*fone);
a0 = (1/R)*kx4*fone + 1i*kx*kx2*U*fone + 1i*kx*Uyy*fone + ...
1i*om*kx2*fone;
A0{1} = [a0, fzero, a2, fzero, (1/R)*fone];
B0{1,1} = [fzero, -fone]; B0{1,2} = [1i*kx*fone, fzero];
C0{1,1} = [fzero, fone]; C0{2,1} = [-1i*kx*fone, fzero];
[Sfun, Sval] = svdfr(A0,B0,C0,Wa0,Wb0,1,1);
ui = Sfun{1};
vi = Sfun{2};
uvec(:,n) = ui(yd,1); vvec(:,n) = vi(yd,1);
end
kx = abs(kxval(1));
xval = linspace(0, 4*pi/kx, 100);
Up = zeros(N,length(xval));
Vp = zeros(N,length(xval));
for indx = 1:length(xval)
x = xval(indx);
for n = 1:2
kx = kxval(n);
Up(:,indx) = Up(:,indx) + uvec(:,n)*exp(1i*kx*x);
Vp(:,indx) = Vp(:,indx) + vvec(:,n)*exp(1i*kx*x);
end
end
Up = real(Up); Vp = real(Vp);
pcolor(xval,yd,Up); shading interp;
cb = colorbar('vert');
xlab = xlabel('x', 'interpreter', 'tex');
ylab = ylabel('y', 'interpreter', 'tex');
set(xlab, 'FontName', 'cmmi10', 'FontSize', 20);
set(ylab, 'FontName', 'cmmi10', 'FontSize', 20);
h = get(gcf,'CurrentAxes');
set(h,'FontName','cmr10','FontSize',15,'xscale','lin','yscale','lin');
set(cb, 'FontName', 'cmr10', 'FontSize', 15);
|
|
Plot the most amplified wall-normal velocity structures.
pcolor(xval,yd,Vp); shading interp;
cb = colorbar('vert');
xlab = xlabel('x', 'interpreter', 'tex');
ylab = ylabel('y', 'interpreter', 'tex');
set(xlab, 'FontName', 'cmmi10', 'FontSize', 20);
set(ylab, 'FontName', 'cmmi10', 'FontSize', 20);
h = get(gcf,'CurrentAxes');
set(h,'FontName','cmr10','FontSize',15,'xscale','lin','yscale','lin');
set(cb, 'FontName', 'cmr10', 'FontSize', 15);
|