01 LBM D1Q2模型实现
01 LBM D1Q2模型实现
这个是学习格子玻尔兹曼方法最初练习的案例。
只有通过程序实现才能理解到复杂的机制背后的道理,没有实操就是纸上谈兵。
%% LBM Code for 1-D, diffusion problems, D1Q2
%
clc;clear;
m = 100;
fo=0:m; f1=0:m; f2=0:m;rho=0:m;feq=0:m;x=0:m;
dt=1;dx=1;
csq = dx*dx/(dt*dt);
alpha = 0.25;
omega = 1/(alpha/(dt*csq)+0.5);
mstep=200;twall=1;
%Initial condition
rho=rho*0;
f1=0.5*rho;f2=0.5*rho;
for kk=1:mstep
rho = f1+f2;
feq = 0.5*rho;
f1 = (1-omega)*f1+omega*feq;
f2 = (1-omega)*f2+omega*feq;
for ii=1:m-1
f1(m-ii+1) = f1(m-ii);
f2(ii) = f2(ii+1);
end
f1(1)=twall-f2(1);
f1(m+1)=f1(m);
f2(m+1)=f2(m);
end
plot(rho(1:30),'bo');
xlabel('x');
ylabel('T');
包括了分布函数初始化、宏观量求解、求平衡态分布函数、碰撞、迁移、边界条件、输出等步骤,是LBM最基本的实现框架。
D1Q2模型类似于一维随机行走。