⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfd2.m

📁 关于计算流体力学中方腔环流问题的求解粘性条件下
💻 M
字号:
clear;
%参数设置
re=input('请输入雷诺数的值\nRe=');                        %雷诺数取100,500,1000
nu=900e-6;                    %粘性系数
L=0.1;                          %空穴几何尺寸
I=50;
J=50;
dx=L/I;
dy=L/J;
U=re*nu/L;                    %平板速度 
dt=1e-4;					    %时间步长
%给定初值
u(1:I+1,J+1)=U;					%给定u的初值,
u(1:I+1,1:J)=0;
v=zeros(I+1,J+1);				%给定v的初值
omega=zeros(I+1,J+1);           %给定具有梯度的涡量初场
omega(1:I+1,J+1)=3*U/(2*dy);
ps=zeros(I+1,J+1);            %给定流函数初场
omega1=ones(I+1,J+1);
ps1=ones(I+1,J+1);
tol1=ps-ps1;
tol2=omega-omega1;
t=0;
n=0;
while norm(tol1)>1e-4|norm(tol2)>1e-4
    n=n+1;
    omega1=omega;
    ps1=ps;
    t=t+dt;
    for i=2:I
        for j=2:J
            omega(i,j)=omega(i,j)-dt*(u(i,j)*(omega(i+1,j)-omega(i-1,j))/(2*dx)+v(i,j)*(omega(i,j+1)-omega(i,j-1))/(2*dy))+dt/re*((omega(i+1,j)-2*omega(i,j)+omega(i-1,j))/dx^2+(omega(i,j+1)-2*omega(i,j)+omega(i,j-1))/dy^2);
        end
    end
    for i=2:I
        for j=2:J
            ps(i,j)=ps(i,j)+0.25*(ps(i+1,j)+ps(i-1,j)+ps(i,j+1)+ps(i,j-1)-4*ps(i,j)+dx^2*omega(i,j));
        end
    end
    for i=2:I
         for j=2:J
             u(i,j)=(ps(i,j+1)-ps(i,j-1))/(2*dy);
             v(i,j)=-(ps(i+1,j)-ps(i-1,j))/(2*dx);
         end
     end
    for j=2:J
       omega(1,j)=1/(2*dx^2)*(ps(3,j)-8*ps(2,j));
       omega(I+1,j)=1/(2*dx^2)*(ps(I-1,j)-8*ps(I,j));
    end
    for i=2:I                                                                          %由流函数值和内点上的涡量值决定涡量的边界值
       omega(i,1)=1/(2*dy^2)*(ps(i,3)-8*ps(i,2));
       omega(i,J+1)=1/(2*dy^2)*(ps(i,J-1)-8*ps(i,J))-3*U/dy;
    end
tol1=ps-ps1;
tol2=omega-omega1;
end

for i=1:I+1						%求各网格点坐标
    for j=1:J+1
        x(i,j)=dx*(i-1);
        y(i,j)=dy*(j-1);
    end
end
for i=1:I
    counter(i)=ps(i,i);
end
counter(i+1)=ps(j-1,2);
counter(i+2)=ps(j-2,3);
counter(i+3)=ps(j-3,3);
counter(i+4)=ps(j-4,3);
counter(i+5)=ps(j-5,3);
contour(x,y,ps,counter)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -