5.3.4 平衡态分布函数

5.3.4 平衡态分布函数

平衡态为系统在某一时刻具有相对稳定的形态,即一个系统在没有外力的作用下随时间的变化熵不再减小时的状态。在LBM中,平衡态分布函数把节点当时的宏观量(密度、速度、压力、温度等)认为是“系统的熵不再随着时间推移减小”时的状态,即稳态。但真实情况下也许并不如此,在演化过程中,也许这里的宏观量仍然处于非稳态。由于平衡态分布函数的计算依赖于当地节点在某一时刻的具体宏观量,因此从这个意义来说,平衡态分布函数只反映一个“即时演化标准”。

1872年,Boltzmann在维也纳科学院的会议报告上发表了著名的论文Weitere Studienüber das Wärmegleichgewicht unter Gasmolekülen(《气体分子热平衡进一步研究》)。其中,他引入了量H(t),其为

并证明了H(t)必定随时间单调递减,且在f(E,t)为Boltzmann分布时达到极小值。根据Boltzmann-H定理,对于稳态气体系统,其分子运动规律的统计平均都能得到一个确定的值,即系统处于H(t)为极小值时的状态,称为平衡态。在平衡态下,网格点上的概率密度函数fi称为平衡态分布函数,记为

图5.3 Maxwe ll-Boltzm ann速率分布曲线

接下来,推导LBM的平衡态分布函数计算公式。图5.3表示了温度为T的一个气体系统,气体分子的速率满足Maxwell-Boltzmann分布。Maxwell-Boltzmann速率分布曲线描述了系统里气体分子的微观速度和宏观速度的关系。f(u)表示概率密度函数;阴影区域表示在一个确定的时间微元和空间微元中,速度为u的分子数占总分子数的比例(概率)。相应的Maxwell-Boltzmann分布计算公式如下:

式中,ξ——微观的分子速度;

u——宏观的分子速度;

ξ-u——描述分子的热运动。

Maxwell-Boltzmann分布是气体运动理论中最基本的物理定律,描述了气体处于平衡状态时宏观与微观速度的最概然分布,分子束技术可以足够精确地测量出分子速度的Maxwell-Boltzmann分布,证明了其正确性。

对式(5.7)进行离散,将指数项进行泰勒展开,即可得在满足Maxwell-Boltzmann分布下的概率密度函数,即平衡态分布函数(i=1,2,…,9):

式中,N为单位体积的分子数量,在宏观下为密度ρ;ξ被简化为有限维的速度空间e i;ωi=(2πRT),为方向权重,其值由恢复到Navier-Stokes方程时,求解参数方程组得出。

平衡态函数用在演化方程中的碰撞项中,是计算过程中多时刻流场逼近的目标。本身也是一个随时间动态更新的值,当流场达到稳态时,与当时的fi相等。

平衡态分布函数在MATLAB中的代码如下:

其中,第1行的function FEQ=FEQf(UX,UY,rho,t1,t2,t3,c_squ)表示采用一个子函数来计算平衡态分布函数的值。其中,UX、UY、rho、t1、t2、t3、c_squ是计算中所需的宏观量和参数,返回的平衡态分布函数结果存储在FEQ中。

关于上述代码有以下五点说明:

(1)MATLAB子函数可以单独存储为一个独立文件。由于该文件的文件名需要和函数名相同,因此只有存储为“FEQf.m”才能被其他程序识别和调用。

(2)MATLAB子函数计算过程中的物理量在相应工作空间“workspace”中不保存,但在子函数内部是可以调用的。

(3)代码中的第2~4行为定义的过程量,这个过程量的计算结果,可以用于后续代码的计算。这样做的好处是可以简化代码和减少重复性计算。

(4)对于求取平衡态分布函数的9个方向的值,既可以如上述代码一样分别计算,也可以采用循环的方式计算。分别计算的好处是可以对不同方向平衡态分布函数的计算方法区别对待,减少不需要的计算,并且避免循环操作(MATLAB中的循环操作比较耗时),其缺点是所需的代码多一些;而采用循环操作时,不需要区别对待具体方向都有哪些代数项参与计算,代码比较精简。

(5)应注意FEQ(:,:,1)的表示方法,其中“:”表示在某个维度上的所有序列。