格子玻尔兹曼机(Lattice Boltzmann Method)系列3:LBM在不可压缩流动下的边界条件算法

这篇文章主要整理了在格子玻尔兹曼方法中4个十分重要的边界条件。

1.回弹性边界条件

回弹性边界条件是格子玻尔兹曼算法中最简单也是最重要的一个边界条件,用于模拟固壁。适用于这个边界条件的粒子有两种不同的观点。

第一种观点是将这个边界点列看作固体。比如,如果在模拟过程中认为第一列是固体点,使用了回弹性边界条件,第二列是流体点,使用了上一篇文章中提到的核心算法,那么实际上的固体边界是在第1.5列。

第二种观点是将这个边界点列看作流体。比如,如果在模拟过程中认为第一列是流体点,使用了回弹性边界条件,第二列是流体点,使用了上一篇文章中提到的核心算法,那么实际上的固体边界是在第1列。

这两种不同的观点会为计算的精准性提供不同程度上的影响。比如如果模拟的是128x128的网格盒子。第一种观点会将实际的盒子大小变为127x127,而第二种观点则会保持实际的盒子大小为128x128。这个区别只要加以区分,实际上影响并不大。但是会影响计算的重心。第一种观点对流场中心的模拟更精确,但是对于流场的边界模拟不够精准。第二种观点则恰恰相反。

具体到编程上,这两种观点的主要区别实际上主要体现在最后的collision步。在第一种观点下,边界是固体点,没有必要也不能去执行最后的collision步。然而在第二种观点下,边界也是流体点,因此必须去执行最后的collision步。

一般来说,我们更倾向于使用第一种观点。具体的图例如下:
回弹性边界条件
这里最下端的固体点实际上只是执行了一个很简单“存储器”的作用,接受 t 时刻在streaming步下由相邻粒子传来的分布函数 f ,同时将上一时刻 t + dt 时间的streaming步下接受的分布函数 f 转一个方向,在本次 t 时刻回弹给相邻的流体点。

回弹性边界条件简单却有效,对于格子玻尔兹曼方法来说,是一个十分重要的算法,直接让LBM从各种算法中脱颖而出。比如传统的FVM方法,虽然边界条件也是十分直观有效,但是遇到模拟多相流动的时候,光是捕捉边流场界面这一点,就是一个十分令人头疼的事情。而同样很新颖的SPH算法,虽然核心算法甚至比LBM更加简单直观,但是至今都没有一个可以让CFD领域满意的统一的边界条件算法。因此LBM的一个很重要的特点就是直观,简单,易于并行化和直接扩展到三维等等优点。

2.周期性边界条件

CFD领域的同学,对于周期性边界条件,一定是不陌生。周期性边界条件在任何算法中都是最简单的一个边界条件。

LBM中的周期性边界条件主要体现在Streaming步,Streaming步作为迭代步的第一步,一般来说会默认所有的周期性边界条件都是周期性边界条件。在第二步的“边界条件计算”步中,再去进行具体的更改。这样做的好处是模块化,更改边界条件的时候不需要再去动Streaming步。

周期性边界条件
周期性边界条件的实现十分容易。在边界点处的流体粒子,其某个方向上可能不再有邻接的粒子点。因此在周期性边界条件下,直接将另一边的粒子点作为邻接点连接起来即可。在上述示意图中,左边界和右边界被连接了起来,互为各自的邻接点。

3.Von Neumann速度边界条件

速度边界条件实际上就是保持某一列边界点处的速度为一个恒定值。由于流体在边界处的无滑移边界条件和无穿透边界体条件,会跟随边界进行相应的运动。
冯纽曼边界条件
这里展示了一个顶部的冯纽曼边界条件。经过Streaming步之后,该边界处的分布函数有且仅有 f4,f7,f8未知,宏观量方面,因为是速度边界条件,速度是已知的,但是密度是未知的。因此有4个未知量。
公式1
公式2&3
公式4
这里展示了4个式子,因此上述的四个未知量是一定可以有解的。其中最后一个式子是为了补充足够多的式子,由Zou & He 在1997年提出来的。
最终得到的解法是如下:

密度计算:
密度
密度
f4 计算:
f4
f4
f7 计算:
f7
f7
f8 计算:
f8
f8
上面的算法都是基于顶部边界条件进行的,另外的三个方向的边界条件也是类似的方法,可以自行进行计算。

4. Dirichlet压力边界条件

迪利克雷条件
跟上一个边界条件十分类似,也是以顶部边界条件举例子,发现未知量一共有5个:分布函数有且仅有 f4,f7,f8未知,宏观量方面,因为是速度边界条件, 密度是已知的,但是速度是未知的。因此有5个未知量。

这里强调一个知识点是,在LBM的模拟中,压强一直都是密度的单变量函数,一般来说在多相流动中会用到复杂的EOS状态方程,但是在单相流动中,可以简单地认为:
EOS
这就导致了一个问题是,5个未知量,但是我们的独立的式子却只有4个(见上一部分的冯纽曼边界条件),实际上,我们会认为速度的横向分量为0,那么就有且仅有4个未知量了。

速度计算:
速度
速度
余下的 f4, f7, f8 的计算就与上一部分的冯纽曼边界条件完全相同了。同样地,这一部分只展示了顶部边界条件的推导,另外3个边界的推导方法和形式都是完全类似的。

总结

这一部分以D2Q9为实例讲解了四个在CFD领域的重要边界条件在LBM中该如何实现。其中周期性边界条件和回弹性边界条件都是可以很简单直观地扩展到三维的D3Q19模型中的,但是无论是冯纽曼边界条件还是迪利克雷边界条件都没用办法简单地扩展到三维的D3Q19模型中,试想在3维中我们有了5个式子,但是未知量却也相应地扩展到了6个,除非再附加新的假设,否则无法解决三维情况下的这两个边界条件。

事实上压力边界条件也可以使用流场内部点的简单插值来实现,在单项流体中也是可以得到验证的,但是亲测在多相流场中并不能够达到相应的预期。关于三维情况下的压力边界条件,如果有人有相关的经验的话,也可以在这里留言。

这一系列的下一部分会以最经典的方腔驱动流为例展示LBM用于计算的一个实际过程。后面会写一点Shan-Chen模型和HCZ模型这些多相流动模型的相关实例。

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值