格子Botlzmann方法·元素與代碼實(shí)現(xiàn)
格子Boltzmann方法起源于氣體動(dòng)理學(xué)理論,其思想是從氣體分子的微觀機(jī)制研究其宏觀特性,如考察氣體分子間的相互作用,獲得氣體的黏性系數(shù)、熱傳導(dǎo)系數(shù)和擴(kuò)散系數(shù)等宏觀特性;通過考察分子的碰撞和流動(dòng)過程獲得流體的壓力、動(dòng)量、能量等宏觀物理量的演變規(guī)律。這一過程可由Boltzmann輸運(yùn)方程描述為:
一個(gè)完整的格子Boltzmann方法實(shí)現(xiàn)主要分為四個(gè)元素:格子(離散速度)模型,平衡態(tài)分布函數(shù),演化方程和宏觀量計(jì)算。
格子模型按照維度來說一般分為二維和三維模型,其中二維最常用的為D2Q9模型(注:此處的D2指的是二維平面,Q9指的是9個(gè)速度方向),即將二維平面的速度以九個(gè)方向的分速度近似,如圖1所示:

在程序中實(shí)現(xiàn)為:
針對(duì)三維問題,最常用的格子模型為D3Q19模型,其示意圖為:

在程序中實(shí)現(xiàn)為:
定義了格子(離散速度)模型之后,如何設(shè)計(jì)正確的平衡態(tài)分布函數(shù)也是格子Boltzmann方法的一個(gè)關(guān)鍵元素。對(duì)于流體流動(dòng)問題,平衡態(tài)分布函數(shù)是面向密度設(shè)計(jì)的,表達(dá)式為:
?其中??為權(quán)重系數(shù),其取值為:
? ? ? ? ? ? ? ?,
在程序中實(shí)現(xiàn)為:
和
平衡態(tài)分布函數(shù)中的表示離散格子速度,定義為?
,
表示格子聲速(標(biāo)量),在D2Q9和D3Q19格子模型中,其定義為
。當(dāng)我們?nèi)?img type="latex" class="latex" src="http://api.bilibili.com/x/web-frontend/mathjax/tex?formula=c%3D1" alt="c%3D1">時(shí),平衡態(tài)分布函數(shù)簡化為:
在程序中實(shí)現(xiàn)為:
值得注意的是,D2Q9和D3Q19的平衡態(tài)分布函數(shù)實(shí)現(xiàn)是一樣的。
當(dāng)我們使用單松弛,即BGK碰撞模型來簡化Boltzmann方程的碰撞項(xiàng)??時(shí),格子Boltzmann方法的演化方程為:
在程序中有兩種實(shí)現(xiàn)方式,一種是碰撞流動(dòng)分開兩個(gè)循環(huán),一種是碰撞流動(dòng)在一個(gè)循環(huán)。先說第一種碰撞流動(dòng)分開的形式,其實(shí)現(xiàn)為:
第二種碰撞流動(dòng)寫在一個(gè)循環(huán)的實(shí)現(xiàn)為:
最后一個(gè)元素是宏觀量密度和速度的計(jì)算,其公式為:
,? ?
在程序中實(shí)現(xiàn)為:
至此,設(shè)計(jì)好這四個(gè)元素,再結(jié)合相應(yīng)的邊界條件即可模擬流體流動(dòng)。下面給出了一個(gè)頂蓋驅(qū)動(dòng)流問題的部分模擬結(jié)果:

