600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 格子玻尔兹曼机(Lattice Boltzmann Method)系列5:LBM多相流实例之Shan-Chen模型

格子玻尔兹曼机(Lattice Boltzmann Method)系列5:LBM多相流实例之Shan-Chen模型

时间:2022-05-09 05:38:57

相关推荐

格子玻尔兹曼机(Lattice Boltzmann Method)系列5:LBM多相流实例之Shan-Chen模型

Shan-Chen模型

在格子玻尔兹曼方法的发展过程中,出现过许多的多相流动算法,其中Shan-Chen模型是最为人熟知也是应用最多的一种,因为这是所有多相流模型中最简单的一个。

LBM用于模拟多相流动一个十分重要的特点就是简单。如果研究过FVM的多相流动的话,捕捉界面是永远无法避免的。Diffuse Interface方法,或者是对界面存在拓扑损失问题的Level-Set方法,等等,绝对是FVM多相流领域中最叫人头疼的一部分。但是LBM则完全不同,由于粒子的角度观,多相流界面的捕捉是完全不需要程序员来写的,不需要写界面捕捉函数就可以模拟多相流代码,就奠定了LBM在CFD领域的一个无可撼动的位置。

然而有得必有失,LBM不需要写界面捕捉程序带来的直接缺陷就是密度比的问题。在现实世界,液气密度比可达1000左右,但是在LBM的多相流动中,密度比最多也就只能达到十几而已。对于Shan-Chen模型,这个缺陷更加明显。然而,相较于其代码的简单程度,这样的缺陷并算不上什么大的问题。

Shan-Chen模型的主要思想是通过增加了流体粒子与固体壁面之间的作用力来进行两相流体分离。

这个变量的计算除了密度以外还需要用到压力的信息。在多相流动中一般会引入一个状态方程来计算压强,这里计算压强我使用的是:Edlich-Kwong(R-K)EOS。

这里的a和b都是常数,我在程序中设定为a=2/49, b=2/21, T=0.85*0.1961,R=1.于是压强p就是密度的单变量函数。

上式中的作用力描述的是流体粒子(不论是否同相)之间的相互作用力,g是一个由自己设定的常数,w是方向向量的权重。

上式中的作用力描述的是流体粒子与固体壁面之间的作用力,s函数用于检测是否是固体粒子,如果是固体壁面,就置为1,否则就置为0.

之前在这里贴的算法的C++实现我删掉了,有兴趣的话可以直接去这里找taichi实现的版本:/GeCao/taichi-LBM

同时也很希望有缘能看到这篇文章的同学也可以尝试用taichi来写你们的代码,方便易上手,taichi社区除了图形和游戏领域以外,也同样非常欢迎CFD类代码的贡献~

这里是运行一个算例后的具体结果:

懒得写接触角测量函数了,所以就直接输出来信息然后用Tecplot画出界面,之后用SCA20_U进行的接触角测量。我在这里设置的是液体密度为6.06,气体密度为0.5,固体密度为0.8.

实际上固体的密度越接近0.5,那么接触角就会越大,反过来越接近6.06,那么接触角就会越小。这里就看出了Shan-Chen模型一个十分大的限制:没有办法手动设置接触角。

上图是一篇文献中的结果,这个程序的所有参数都是引用的这篇文献中的设置:[5].Haibo Huang, Zhitao Li, Shuaishuai Liu, Xi-yun Lu. Shan-and-Chen-type multiphase lattice Boltzmann study of viscous coupling effects for two-phase flow in porous media. Int. J.Numer. Meth. Fluids. .

Shan-Chen模型的基本情况就是这么多,也许你很疑惑是在计算粒子间作用力和固体-液体作用力的时候,参数g的作用究竟是什么。实际上g显然是一个表面张力的相关量。而尽管在现实世界中一般会认为表面张力越大,接触角也会越大。以我曾经实验测量了无数种流体的接触角经验来说,统计意义上的确是有这样的相关性,但是也经常会有表面张力大接触角反而小的流体存在,而且比例还不低。所以在所有的数值模拟中,接触角和表面张力都是解耦分开的。

下一篇会写一写多相流模拟中的HCZ模型,然后这个系列基本上就到了尾声了。再后面可能会挑个时间写一写浸入边界法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。