clear;clc
Retau = 180;base_flow = 2;
Lx = 4;Ly = 2;Lz = 2;h = Ly/2;
nx = 401;ny = 201;nz = 201;
[X,Y,Z] = creatMesh(nx,ny,nz,Lx,Ly,Lz);
U = zeros(nx*ny*nz,1);
V = zeros(nx*ny*nz,1);
W = zeros(nx*ny*nz,1);
nu = 1.58e-5;
utau = Retau*nu/h;
if base_flow == 1
Ubar = (utau^2)*h/3/nu;
for i = 1:length(U)
y = min(Y(i),2*h-Y(i));
U(i) = 3*Ubar*(y/h-0.5*(y/h)^2);
end
elseif base_flow == 2
for i = 1:length(U)
y = min(Y(i),2*h-Y(i));
yplus = y*Retau/h;
if yplus<=10.8
U(i) = utau*yplus;
elseif yplus>10.8
U(i) = utau*(log(yplus)/0.41+5);
end
end
Ubar = mean(U);
end
duplus = Ubar*0.25/utau;
sigma = 0.00055;
betaPlus = 2*pi*(1/200);
epsilon = Ubar/200;
alphaPlus = 2*pi*(1/500);
for i = 1:length(U)
deviation = 1+0.2*randn(1);
xplus = X(i)*Retau/h;
y = min(Y(i),2*h-Y(i));
yplus = y*Retau/h;
zplus = Z(i)*Retau/h;
U(i) = U(i)+(utau*duplus/2.0) * (yplus/40.0)...
* exp(-sigma * (yplus^2) + 0.5)...
* cos(betaPlus*zplus)*deviation;
W(i) = epsilon*sin(alphaPlus*xplus)*yplus*exp(-sigma*(yplus^2))...
* deviation;
end
U = U./utau;V = V./utau;W = W./utau;
U3d = reshape(U,nx,ny,nz);
uxz = reshape(U3d(:,5,:),nx,nz);
pcolor(uxz)
shading interp
data = [U,V,W];
writeXuBinaryfile(strcat('../4_binary_data/MATLAB_Retau',num2str(Retau),'_Initial.bin'),data)
disp('successful write!')
function [] = writeXuBinaryfile(file,data)
fid = fopen(file,'w');
fwrite(fid,1,'int32');
fwrite(fid,data(:,1),'float64');
fwrite(fid,[1 1],'int32');
fwrite(fid,data(:,2),'float64');
fwrite(fid,[1 1],'int32');
fwrite(fid,data(:,3),'float64');
fwrite(fid,1,'int32');
fclose(fid);
end