Streamwise-constant three-dimensional channel flow
|
Streamwise-constant three-dimensional channel flow.
|
Here, we consider the dynamics of the streamwise-constant fluctuations in three-dimensional
channel flows,
where
, | — | streamfunction and streamwise velocity |
, , | — | streamwise, wall-normal, and spanwise forcing |
| — | Reynolds number |
| — | spanwise wavenumber |
| — | for shear-driven flow |
| — | for pressure-driven flow |
| — | Laplacian |
. | | |
|
The boundary conditions are given by
The desired outputs are the streamwise, wall-normal, and spanwise velocity fluctuations,
The input-output differential equations representing the frequency response operator are given by
Matlab codes
R = 2000;
kzval = linspace(0.1,5,30);
kzgrd = length(kzval);
om = 0;
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];
Wa0{2} = [1, 0];
Wb0{1} = [1, 0, 0, 0; 0, 1, 0, 0];
Wb0{2} = [1, 0];
Smax = zeros(kzgrd,1); A0 = cell(2,2); B0 = cell(2,3); C0 = cell(3,2);
for indz = 1:kzgrd
kz = kzval(indz); kz2 = kz*kz; kz4 = kz2*kz2;
A11 = [kz2*(kz2/R + 1i*om)*fone, fzero, ...
-(2*kz2/R + 1i*om)*fone, fzero, (1/R)*fone];
A12 = [fzero, fzero, fzero];
A21 = [-1i*kz*Uy*fone, fzero, fzero, fzero, fzero];
A22 = [-(kz2/R + 1i*om)*fone, fzero, (1/R)*fone];
A0 = {A11, A12; A21, A22};
B11 = [fzero, fzero]; B12 = [-1i*kz*fone, fzero];
B13 = [fzero, fone];
B21 = [-fone, fzero]; B22 = [fzero, fzero]; B23 = [fzero, fzero];
B0 = {B11, B12, B13; B21, B22, B23};
C11 = [fzero, fzero]; C12 = [fone, fzero];
C21 = [1i*kz*fone, fzero]; C22 = [fzero, fzero];
C31 = [fzero, -fone]; C32 = [fzero, fzero];
C0 = {C11, C12; C21, C22; C31, C32};
[Sfun, Sval] = svdfr(A0,B0,C0,Wa0,Wb0,1,1);
Smax(indz) = Sval(1);
end
plot(kzval,Smax,'-','LineWidth',1.1);
xlab = xlabel('k_z', 'interpreter', 'tex');
set(xlab, 'FontName', 'cmmi10', 'FontSize', 20);
h = get(gcf,'CurrentAxes');
set(h,'FontName','cmr10','FontSize',15,'xscale','lin','yscale','lin');
N = 100;
yd = chebpts(N);
kz = 1.62; kz2 = kz*kz; kz4 = kz2*kz2;
om = 0;
A11 = [kz2*(kz2/R + 1i*om)*fone, fzero, ...
-(2*kz2/R + 1i*om)*fone, fzero, (1/R)*fone];
A12 = [fzero, fzero, fzero];
A21 = [-1i*kz*Uy*fone, fzero, fzero, fzero, fzero];
A22 = [-(kz2/R + 1i*om)*fone, fzero, (1/R)*fone];
A0 = {A11, A12; A21, A22};
B11 = [fzero, fzero]; B12 = [-1i*kz*fone, fzero]; B13 = [fzero, fone];
B21 = [-fone, fzero]; B22 = [fzero, fzero]; B23 = [fzero, fzero];
B0 = {B11, B12, B13; B21, B22, B23};
C11 = [fone, fzero]; C12 = [fzero, fzero];
C21 = [fzero, fzero]; C22 = [fone, fzero];
C0 = {C11, C12; C21, C22};
[Sfun, Sval] = svdfr(A0,B0,C0,Wa0,Wb0,1,1);
psii = Sfun{1};
ui = Sfun{2};
pvec(:,1) = psii(yd,1); uvec(:,1) = ui(yd,1);
zval = linspace(-2*pi/kz, 2*pi/kz, 100);
Up = zeros(N,length(zval));
Pp = zeros(N,length(zval));
for indz = 1:length(zval)
z = zval(indz);
Up(:,indz) = Up(:,indz) + ...
uvec*exp(1i*kz*z) + conj(uvec)*exp(-1i*kz*z);
Pp(:,indz) = Pp(:,indz) + ...
pvec*exp(1i*kz*z) + conj(pvec)*exp(-1i*kz*z);
end
Up = real(Up); Pp = real(Pp);
pcolor(zval,yd,Up/max(max(Up))); shading interp;
Ppn = Pp/max(max(Pp));
hold on
contour(zval,yd,Ppn, ...
linspace(0.1*max(max(Ppn)),0.9*max(max(Ppn)), 4),'k--','LineWidth',1.1)
contour(zval,yd,Ppn, ...
linspace(-0.9*max(max(Ppn)),-0.1*max(max(Ppn)), 4),'k','LineWidth',1.1)
xlab = xlabel('z', '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');
hold off
|
The most amplified sets of fluctuations are given by high (hot colors) and low (cold colors)
streamwise velocities, with pairs of counter-rotating streamwise vortices in between them
(contour lines).
|
|