1 内容介绍
采用D2Q9模型,反弹边界,粗糙界面采用规则矩形
2 仿真代码
%%lbm方法模拟粗糙界面流动程序,
%%采用D2Q9模型,反弹边界,粗糙界面采用规则矩形
clear all;
clc;
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++??????????????????????+++++++++++++++++++++++++++++++++++++++++
nx=40; ny=250;
bound=zeros(nx,ny);bound([1 nx],:)=1;A=1:38;
left_corner=zeros(1,5);right_corner=zeros(1,5);
for i=1:5
bound_point=40*i+(0:10);
bound(1:6,bound_point)=1;
bound(nx-(1:5),bound_point)=1;
left_corner(i)=40*i;
right_corner(i)=40*i+10;
A=[A ((40*i+1):(40*i+9)) (40*i+12):(40*(i+1)-2)];
end
A=[A A(end)+1:250];
B=bwboundaries(bound,8);
B1=B{1};B2=B{2};
B1(1:249,:)=[];B2(end-248:end,:)=[];
[~,tempi,~]=intersect(B1(:,2),A);b1=B1(tempi,:);
[~,tempi,~]=intersect(B2(:,2),A);b2=B2(tempi,:);
boundary=find(bound==1);
imshow(1-bound);
figure;
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++????????????+++++++++++++++++++++++++++++++++++++++++
Pin=1.001;Pout=1;
Rb=0.7;
tau= 1;
dx=1;dy=1;dt=1;c=dx/dt;t1=4/9; t2=1/9; t3=1/36; c_squ=c^2/3;
rouin=Pin/c_squ; rouout=Pout/c_squ;
DENSITY=rouout*ones(nx,ny);DENSITY(:,1)=rouin*ones(nx,1);
DENSITY(boundary)=rouout;
UX = zeros(nx,ny);UY= zeros(nx,ny);UX0=zeros(nx,ny);UY0=zeros([nx ny]);DENSITY0=zeros(nx,ny);
3 运行结果
4 参考文献
[1]刘立军, 胡文彬, 梅红岩. 基于变精度粗糙集模型的Matlab实现[J]. 计算机工程与应用, 2007.
[2]徐辉, 陶文铨. 熵格子Boltzmann方法模拟高Reynolds数流动[J]. 工程热物理学报, 2009(1):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。