基于MATLAB的LBM代码: Rough jet model
%By liu-2017.0403. 谢谢这位没写名字的大佬。
%又上网扒代码了。 感人的效果。流体流入水腔。
%还是老样子,有啥问题Feel free to tell us~毕竟群众力量大嘛~QQ群:293267908。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
% GENERAL FLOW CONSTANTS
lx = 250;
ly = 250;
obst_x = lx/5+1; % position of the cylinder; (exact
obst_y = ly/2+1; % y-symmetry is avoided)
obst_r = ly/10+1; % radius of the cylinder
uMax = 0.06; % maximum velocity of Poiseuille inflow
Re = 100; % Reynolds number
nu = uMax * 2.*obst_r / Re; % kinematic viscosity
omega = 1. / (3*nu+1./2.); % relaxation parameter
maxT = 4000; % total number of iterations
tPlot = 5; % cycles
% D2Q9 LATTICE CONSTANTS
t = [4/9, 1/9,1/9,1/9,1/9, 1/36,1/36,1/36,1/36];
cx = [ 0, 1, 0, -1, 0, 1, -1, -1, 1];
cy = [ 0, 0, 1, 0, -1, 1, 1, -1, -1];
opp = [ 1, 4, 5, 2, 3, 8, 9, 6, 7];
col = [2:(ly-1)];
[y,x] = meshgrid(1:ly,1:lx);
% obst = (x-obst_x).^2 + (y-obst_y).^2 <= obst_r.^2;
obst = (abs(y-4.*(x-110)-50)<=1.8).*(x>=110).*(x<=120)+...
(abs(y+4.*(x-140)-50)<=1.8).*(x>=130).*(x<=140);
% obst = zeros(lx,ly);
obst([1,lx],:) = 1;
obst(:,ly) =1 ;
obst([1:110],1)=1;
obst([140:250],1)=1;
obst(110,[1:50])=1;
obst(140,[1:50])=1;
bbRegion = find(obst);
% INITIAL CONDITION: (rho=0, u=0) ==> fIn(i) = t(i)
fIn = reshape( t' * ones(1,lx*ly), 9, lx, ly);
% MAIN LOOP (TIME CYCLES)
for cycle = 1:maxT
% MACROSCOPIC VARIABLES
rho = sum(fIn);
ux = reshape ( ...
(cx * reshape(fIn,9,lx*ly)), 1,lx,ly) ./rho;
uy = reshape ( ...
(cy * reshape(fIn,9,lx*ly)), 1,lx,ly) ./rho;
% MACROSCOPIC (DIRICHLET) BOUNDARY CONDITIONS
% Inlet: Poiseuille profile
L = ly-2; y = col-1.5;
ux(:,[111:139],1) = 0;
uy(:,[111:139],1) = uMax;
rho(:,[111:139],1) = 1 ./ (1-uy(:,[111:139],1)) .* ( ...
sum(fIn([1,4,2],[111:139],1)) + ...
2*sum(fIn([5,8,9],[111:139],1)));
% % Outlet: Zero gradient on rho/ux
% rho(:,lx,col) = rho(:,lx-1,col);
% uy(:,lx,col) = 0;
% ux(:,lx,col) = ux(:,lx-1,col);
% COLLISION STEP
for i=1:9
cu = 3*(cx(i)*ux+cy(i)*uy);
fEq(i,:,:) = rho .* t(i) .* ...
( 1 + cu + 1/2*(cu.*cu) ...
- 3/2*(ux.^2+uy.^2) );
fOut(i,:,:) = fIn(i,:,:) - ...
omega .* (fIn(i,:,:)-fEq(i,:,:));
end
% MICROSCOPIC BOUNDARY CONDITIONS
for i=1:9
% Left boundary
fOut(i,1,col) = fEq(i,1,col) + ...
18*t(i)*cx(i)*cy(i)* ( fIn(7,1,col) - ...
fIn(6,1,col)-fEq(7,1,col)+fEq(6,1,col) );
% % Right boundary
% fOut(i,lx,col) = fEq(i,lx,col) + ...
% 18*t(i)*cx(i)*cy(i)* ( fIn(6,lx,col) - ...
% fIn(9,lx,col)-fEq(6,lx,col)+fEq(9,lx,col) );
% Bounce back region
fOut(i,bbRegion) = fIn(opp(i),bbRegion);
end
% STREAMING STEP
for i=1:9
fIn(i,:,:) = ...
circshift(fOut(i,:,:), [0,cx(i),cy(i)]);
end
% VISUALIZATION
if (mod(cycle,tPlot)==0)
u = reshape(sqrt(ux.^2+uy.^2),lx,ly);
u(bbRegion) = nan;
imagesc(u');
axis equal off; drawnow
end
end
基于MATLAB的LBM代码: Rough jet model相关推荐
- 改变 STREAMING 部分--基于MATLAB的LBM代码
有啥LBM相关问题Feel free to tell us~~毕竟群众力量大嘛~格子玻尔兹曼救星QQ群:293267908. 之前上传的代码有震荡问题,而且运行时间久了就爆炸...昨天重写传播部分,不 ...
- D2Q9模型--基于MATLAB的LBM代码
哇咔咔又扒代码啦,感谢我的难兄老田同志贡献了自己的账号.这个代码上面没署名,不知道是哪个朋友写的,侵权立刻删哈. 还是老规矩先宣传一下QQ群群: 格子玻尔兹曼救星:293267908. % -- ...
- 基于matlab弹道方程代码,基于Matlab/Simulink的弹丸外弹道6自由度运动仿真
第 23卷 第 4期 Vol. 23 No. 4 重 庆 工 学 院 学 报 (自然科学 ) Journal of Chongqing Institute of Technology(Natural ...
- (基于matlab自写代码)语音信号增强
利用双线性变换法,小波法,简谱法. 双线性变换法是使数字信号滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法. 小波指的是一种能量在时域非常集中的波,小波直接把傅里叶变换的基给换了,将无限长的 ...
- (基于matlab自写代码)语音信号的线性预测
预测之前先把信号采样. 把过去的p个样值sn-k分别乘上适当的系数ɑn-k,再累加起来即得到现时样值的预测值. 当ɑn-k取实数,则p个样值中任何一个有变化,都使预测值xn成比例地变化.因为预测公式是 ...
- 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码
基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...
- 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)
摘要:本文重点介绍了基于YOLOv5目标检测系统的MATLAB实现,用于智能检测物体种类并记录和保存结果,对各种物体检测结果可视化,提高目标识别的便捷性和准确性.本文详细阐述了目标检测系统的原理,并给 ...
- 802.11a matlab,802.11a-OFDM 基于matlab的 仿真程序;
我再论坛找了很多 的代码和文章,但总有遗患,为什么呢 270万源代码下载- www.pudn.com...
文件名称: 802.11a-OFDM下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 26 KB 上传时间: 2013-11-10 下载次数: 138 详细说 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
最新文章
- 模拟宽度自适应的输入框
- Nature:科学家成功解读大脑构建的分子机制
- 中文乱码,也许这个小技巧可以帮到你
- Understand分析Kinect SDK 1.7自带例子(C++)图集二
- shell中的算数运算
- mysql高性能学习笔记03_MySQL高性能学习笔记
- 热泵精馏_精馏干货16 || 分子蒸馏
- linux检查磁盘空间使用情况df 命令
- JavaScript笔记(3)
- hdu 2110 基础母函数
- 计算机专业怎样提升竞争力,新形势下如何提高计算机专业学生就业竞争力.doc...
- 【Level 09】U1 The way I see it L1 A great adventure
- 新手指南:X5Cloud云端应用安装步骤(有图有说明)
- 提高CIFAR-10分类准确度的方法
- 烂泥:windows server 2008取消关闭事件跟踪
- matlab图像的裁剪
- 职务犯罪嫌疑人的第十八天科达打造“镇江模式”
- 常用数字、模拟量输出传感器原理介绍
- Windows10杀毒软件哪个好用点?
- 计算雅思成绩C语言,雅思考试总成绩计算查分表
热门文章
- 并查集详解(一个有爱的江湖故事)
- Hutool导出Excel,在一个单元格设置多个字体样式
- elastic安装报错:max file descriptors [4096] for elasticsearch process is too low, increase to at least
- mysql 类图_类图 - 吴小凯 - 博客园
- SSIS 通过添加脚本组件 自定义转换数据
- R-FCN 与 Position Sensitive ROI Pooling
- SCM软件配置管理 (一)SVN 与 CVS
- Linux下spi驱动分析与测试【详细流程】
- python发送短信每天有限额吗_发送短信如何限制1小时内最多发送11条短信
- 使用Python爬取安居客二手房房价数据