He-Chen-Zhang模型
HCZ模型比上一篇文章中的Shan-Chen模型的一大亮点就是可以自己手动设置接触角,而且相对来说可以模拟的密度比也会大上许多,甚至有文献中可以达到100:1。但是HCZ模型的算法就相对来说要复杂上不少了。
HCZ模型中引入了两个不同的分布函数 f 和 g,具体的算法如下:
其中,a = 12RT, b = 4.
流场宏观量的计算如下:
表面张力的计算如下:
这里的参数在我写的程序中被记为kappa,是一个表面张力控制量,具体的量纲可以在文献 Zhang et al, 2000中找到:[1]. Raoyang Zhang, Xiaoyi He, Shiyi Chen, “Interface and surface tension in incompressible lattice Boltzmann multiphase model”, 2000.
在我写的程序中,设置液体密度为0.251,气体密度为0.024,与文献Lei Wang et al.2013中的参数完全相似。这里贴出来这篇文献:[2]. Lei Wang, Haibo Huang, Xiyun Lu, “Scheme for contact angle and its hysteresis in a multiphase lattice Boltzmann method”, 2013.
基本的算法就是这样,接下来进行接触角的模型描述。
Contact Angle
在文献[2]中,引入的接触角计算算法是在2007年由hang ding et al.发展的应用于FVM的接触角测量方法:
图片来源于文献[2].
上式是一个二维情况下的接触角设置方法,这个方法的巧妙之处就在于只需要在ghost area设置以下指标函数的参数就可以了,这也就是为什么在这个系列的第二篇文章中,我提醒了要为ghost area留白。
上式是三维情况下的接触角算法。
算法的介绍就到这里,接下来也是惯例地贴出来代码:如果仍然不是很清楚的话就去看我前面提到的三篇文献。
之前在这里贴的算法的C++实现我删掉了,有兴趣的话可以直接去这里找taichi实现的版本:https://github.com/GeCao/taichi-LBM
同时也很希望有缘能看到这篇文章的同学也可以尝试用taichi来写你们的代码,方便易上手,taichi社区除了图形和游戏领域以外,也同样非常欢迎CFD类代码的贡献~
这个程序跟上一个程序完全类似,仅仅是计算液滴在不同接触角下在壁面上的铺展。这里就懒得再放自己跑出来的结果了,知识展示一下文献[2]中的结果。
LBM的多相流模型到这里就算全部都总结完了,其他的比如自由能模型等,我感觉并不是十分好用,所以也没有去接触过。LBM还缺一个圆柱绕流的浸入边界法没有深入讲解,我估计自己也实在是懒得再去写了。
LBM的总结到这里基本就是完全结束了。后面会再开新的系列,不过就已经不再是CFD领域的东西了。