最近在学习格子Boltzamann方法求解对流扩散方程,因为没有流体力学的基础,很多基本的方程公式理解起来还是比较困难。接下来的几篇大致从应用的角度,记录一下学习的过程,希望能有所帮助。第一篇主要是基础知识。

格子Boltzmann方法(Lattice Boltzmann Method, 简称LBM)是建立在分子运动论和统计力学基础上的一种模拟流场的数值方法。该方法在宏观上是离散方法,在微观上是连续方法,因此被称为介观模拟方法。它的核心是建立微观尺度和宏观尺度的桥梁,它不考虑单个粒子的运动,而是将一系列粒子的运动视为一个整体,同时计算的物理区域和时间区域也被离散成一系列格子。流体粒子按碰撞和迁移规则在网格上运动,通过对各网格流体质点和运动特征的统计,获得流体宏观运动规律。粒子的整体运动特性由分布函数表示。

动力学理论

自然界的各种物质都是由分子构成的,这些分子可以看作在自由空间内做无规则运动的球体。分子满足质量、动量和能量守恒,因此可以应用牛顿第二定律。

当系统内能增加时,粒子的速度大小增加,粒子间相互作用也增强,因此在宏观世界,分子动能增加表现为温度升高。另外粒子与容器连续发生碰撞,单位面积内分子运动产生的力就是宏观世界的压力。

宏观世界的温度和压力就是微观世界中分子动能的量度

分布函数

1859年麦克斯韦认识到,即使控制方程(牛顿第二定律)已知,表述大量分子的运动仍然是困难的,于是产生了平均的概念。麦克斯韦的观点是,任意时刻单个分子的速度和位置信息并不重要,分布函数才是描述分子效应的重要参数。即在某一给定时间,速度在一定范围内的分子处在某一具体位置的百分比。当气体处于热平衡状态时,分布函数不再是时间的函数,气体均匀地分布在容器里,唯一的未知量就是速度分布函数。假设气体所含的粒子数为N,x方向上速度为$c_{x}$~$c_{x}+dc_{x}$的分子数为$Nf(c_{x})dc_{x}$,函数$f(c_{x})$表示x方向上粒子速度为$c_{x}$~$c_{x}+dc_{x}$的百分数。其他方向上的概率分布同理。将三个方向上的概率分布相乘,可得速度为$c$时的分布函数,即分布函数就是速度为$c$~$c+dc$的粒子数。

经过推导(过程略)可以得到,分布函数为

这个方程称为麦克斯韦分布函数或麦克斯韦-玻尔兹曼分布函数。

玻尔兹曼运输方程

一个系统可以用分布函数$f(r,c,t)$进行统计学描述。$f(r,c,t)$表示t时刻速度为$c$~$c+dc$且处于$r$~$r+dr$的分子数。外力F作用在单位质量的气体分子上,将使分子速度由$c$转变为$c$+F$dt$,位置也由$r$移动到$r+cdt$。如果分子间不发生碰撞,则施加外力前后分子数$f(r,c,t)$和$f(r+cdt,c+Fdt,t+dt)$相等。因此

然而,如果分子间发生碰撞,$drdc$间隔内的分子数将会有一个差值。分布函数由初始状态到最终状态的变化率成为碰撞算子$\Omega$。因此分子数目的演化方程可以写成

上式两边分别除以$drdcdt$,并取极限$dt\rightarrow0$,得

上述方程表明,分布函数的总变化率等于碰撞速率。由于分布函数$f$是$r、c、t$的函数,因此总变化率可以表示为

方程两边除以$dt$,并将$a=dc/dt$,$c=dr/dt$带入得

加速度a通过牛顿第二定律与力F建立联系,a=F/m。

因此玻尔兹曼运输方程可以写成

其中$\Omega$为f的函数,需要确定后才能求解玻尔兹曼方程。

当系统不受外力时,玻尔兹曼方程可以表示为

上述方程为带有源项或反应项($\Omega$)的对流方程。当$\Omega$已知时,可以精确求解。但是实际上$\Omega$是$f$的函数,该方程是一个积分-微分方程,难以求解,因此引出了BGK近似。

BGKW近似

由于碰撞项非常复杂,求解玻尔兹曼方程十分困难,在不影响求解结果的前提下可以通过简单的算子对碰撞算子进行近似。1954年,Bhtnagar、Gross和Krook(BGK)引入了一个简单的碰撞算子模型。同时,Welander也独立引入了类似的算子,这个碰撞算子表示为

其中$ \omega =1/\tau $,$ \omega $为松弛频率, $\tau $为松弛因子,$ f^{eq} $为局部平衡分布函数。

引入BGK近似后,玻尔兹曼方程可以近似为

将上式沿特定方向进行离散,可以得到

这个方程通过简单地指定平衡分布函数和直接添加源项,将其应用到很多物理问题中,是后续许多问题的基础。