✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机 电力系统
⛄ 内容介绍
【物理应用】基于傅里叶伽辽金谱法二维纳维-斯托克斯附matlab代码
⛄ 部分代码
function examples
%% customVortices
N=128;
Re=200;
te=50;
w0=customVortices(N);
FGM2DNS=FGM2D_NavierStokes(N,Re,w0,0,te,[]);
FGM2DNS=FGM2DNS.Preprocessing_FGM2D;
FGM2DNS=FGM2DNS.Main_FGM2D(0,1);
%% taylorVortex
N=64;
locx=0;
locy=0;
R=0.3;
Re=1000;
te=10;
w0=taylorVortex(N,locx,locy,R);
w_exact=singleTaylorVortexSol(N,locx,locy,R,Re,te);
dt=0.01;
FGM2DNS=FGM2D_NavierStokes(N,Re,w0,0,te,dt);
FGM2DNS=FGM2DNS.Preprocessing_FGM2D;
close
FGM2DNS=FGM2DNS.Main_FGM2D(0,1);
plot(FGM2DNS.x(N/2+1,N/2+1:end),w0(N/2+1,N/2+1:end))
hold on
plot(FGM2DNS.x(N/2+1,N/2+1:end),w_exact(N/2+1,N/2+1:end),'*',FGM2DNS.x(N/2+1,N/2+1:end),FGM2DNS.w(N/2+1,N/2+1:end))
grid on
xlabel('$$x$$',Interpreter='latex')
ylabel('$$\omega$$',Interpreter='latex')
title("Taylor vortex")
legend('Initial condition','Exact solution','Numerical solution')
%% corotatingVortexPair
locy=[0 0];
Re=1000;
te=3;
N=128;
d=pi/6;
R=[0.2 0.2];
locx=[-d/2 d/2];
w0=taylorVortex(N,locx,locy,R);
FGM2DNS=FGM2D_NavierStokes(N,Re,w0,0,te,[]);
FGM2DNS=FGM2DNS.Preprocessing_FGM2D;
close
FGM2DNS=FGM2DNS.Main_FGM2D(0,1);
contourf(FGM2DNS.x,FGM2DNS.y,FGM2DNS.w,200,'edgecolor','none')
axis equal
colorbar
title("$$R=$$"+R(1)+"$$\quad d=\frac{\pi}{6}$$","Interpreter","latex")
xlabel("Dimensionless $$x$$","Interpreter","latex")
ylabel("Dimensionless $$y$$","Interpreter","latex")
%% kelvinHelmholtzInstability
N=256;
Re=5000;
w0 = twoEqualOppositeMixingLayer(N,19,pi/3);
w0(:,linspace(1,256,6))=w0(:,linspace(1,256,6))*1.1;
FGM2DNS=FGM2D_NavierStokes(N,Re,w0,0,5,[]);
FGM2DNS=FGM2DNS.Preprocessing_FGM2D;
FGM2DNS=FGM2DNS.Main_FGM2D(0,1);
%% periodicArrayOfVortices
locy=[pi/4 pi/4 pi/4 pi/4 pi/4 -pi/4 -pi/4 -pi/4 -pi/4 -pi/4];
locx=[-pi -2*pi/4 0 2*pi/4 pi -pi -2*pi/4 0 2*pi/4 pi];
R=[0.3 0.3 0.3 0.3 0.3 -0.3 -0.3 -0.3 -0.3 -0.3];
Re=100;
N=128;
w0=taylorVortex(N,locx,locy,R);
FGM2DNS=FGM2D_NavierStokes(N,Re,w0,0,30,[]);
FGM2DNS=FGM2DNS.Preprocessing_FGM2D;
FGM2DNS=FGM2DNS.Main_FGM2D(0,1);
return
⛄ 运行结果
⛄ 参考文献
⛄ Matlab代码关注
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料