5.3.7 边界条件
研究具体的物理系统,就必须考虑对象所处的特定“环境”,而周围环境的影响常体现为系统边界上的物理状态,即边界条件。根据边界条件的设定形式不同,一般可分为三类:狄利克雷(Dirichlet)条件、诺伊曼(Neumann)条件及罗宾(Robin)条件。这在4.2.3节中已经介绍,不再赘述。
在LBM中,根据变量类型不同,边界条件分为宏观边界条件和微观边界条件。宏观边界条件主要指速度和密度(压力)。对于同一边界上的网格节点,既要设置速度,又要设置密度。原则上,速度和密度不能同时设为第一类边界,如果速度(密度)指定了,那么密度(速度)就需要采用外推方法来确定。这里的“外推”,是指将内侧一层网格的相应值赋予边界节点,这本质上是设置值为0的第二类边界条件。
例如,通道流入口边界和出口边界的宏观边界设置代码如下:
第1、2、6行为直接指定数值,属于第一类边界条件。其他行代码都采用外推方法,本质上是第二类边界条件。
微观量的设置方式比宏观量更复杂。对于入口、出口的边界条件,既可以用Zhou/He边界条件,也可以用非平衡外推方法;对于壁面边界,既可以用反弹边界(Bounce-Back),也可以用非平衡外推方法。由于非平衡外推方法处理起来简单,适合入口、出口、壁面等方式的微观边界设置,因此应用比较广泛。
非平衡态外推格式是由郭照立等人于2002年提出的一种具有二阶数值精度的微观量外推方法[10]。该方法将概率密度函数的组成分为两部分:一部分为平衡态,另一部分为非平衡态。平衡态部分可以通过宏观边界值直接得到;非平衡态部分则以外推方法得到,计算公式为
式中,f0,f1—— 边界格点和内邻格点的概率密度函数;,
——相应的平衡态分布函数。
通道流模型的四个边界上应用非平衡态外推方法的MATLAB代码如下:
其中,第1行表示左入口的非平衡外推格式,移项后即式(5.12),也就是F(2:ly-1,1,:)-FEQ(2:ly-1,1,:)=(F(2:ly-1,2,:)-FEQ(2:ly-1,2,:))。其他三行代码分别为右出口、下壁面和上壁面三个边界上的分布函数。
非平衡外推方法主要用于处理求解域的边界条件,包括入口、出口和无滑移壁面等。在LBM中,反弹(Bounce-Back)方法也是一种常见的边界处理方法,它主要用于壁面边界的处理。
根据壁面边界的位置不同,反弹边界可以分为边界壁面(on grid)和内部壁面(mid grid)两种。在边界壁面,标准的反弹边界只有一阶精度,但经过改进后可以达到二阶精度(如修正反弹、半步反弹),内部壁面边界则有二阶精度。在本书中,参与反弹的微观量不参与碰撞操作。若加入反弹边界条件,则需在程序流程中进行3个步骤改动,如图5.6所示。
图5.6 反弹操作在LBM计算流程中的嵌入
首先看看图5.7中所描述在边界上的“on grid”情况。
图5.7 壁面反弹边界中节点上的概率密度函数
对于边界上的节点,f6、f7、f8三个方向在迁移时是空缺的,为了在该节点上形成壁面(无滑移、无穿透)条件,在水平方向应满足无滑移条件,即f1+f2+f8=f4+f5+f6,在竖直方向应满足无穿透条件,即f6+f7+f8=f2+f3+f4,因而最简单的方法就是以f2、f3、f4分别替代f6、f7、f8,这样就使得碰撞后的微观量满足了壁面条件。此外,为了使得壁面边界的平衡态分布函数满足精度,还需要在计算宏观速度后对边界节点上的宏观速度进行修改,使得平衡态速度u eq=0。
对于“mid grid”的情况,根据宏观速度计算公式易知,反弹后微观量完全反向,因此宏观流动与上一时刻的流动趋势相反,并且由于没有增/减新的fi,可保证∑fi守恒,从而使得密度和压力的计算不引入新的误差。
“mid grid”型的Bounce-Back条件用于描述流场内部区域的固体结构,这对于构造特殊形态的通道结构(如狭窄、圆柱、漏筛等)有很大用处。