格子玻爾茲曼方法(0) -----入門(mén)書(shū)籍
雖然自己之前學(xué)的大致上屬于物理專(zhuān)業(yè),可是計(jì)算流體力學(xué)并不是自己的方向,不過(guò)一直對(duì)流體的模擬很感興趣。
前段時(shí)間,網(wǎng)上瞎逛時(shí),無(wú)意發(fā)現(xiàn)了一段神奇的程序,不長(zhǎng)的一段代碼,就可以實(shí)現(xiàn)卡門(mén)渦街的模擬。程序的名字是LBM,后來(lái)才知道LBM就是格子玻爾茲曼方法的簡(jiǎn)寫(xiě)。
奈何學(xué)習(xí)的時(shí)候?qū)嵲谔?,物理功底很一般,?duì)著程序研究了好久,也沒(méi)搞懂這個(gè)方法到底是怎么編寫(xiě)程序?qū)崿F(xiàn)模擬水流的。無(wú)奈只能買(mǎi)書(shū)來(lái)看,經(jīng)過(guò)艱苦不懈的努力,現(xiàn)在總算能獨(dú)立編寫(xiě)簡(jiǎn)單的LBM程序了。發(fā)現(xiàn)網(wǎng)上很多初學(xué)LBM的同學(xué),或者是對(duì)流體有興趣的同學(xué),也有我之前一樣的困擾,學(xué)習(xí)時(shí)不得其門(mén)而入,所以準(zhǔn)備寫(xiě)幾篇簡(jiǎn)短的文章來(lái)講解一下這個(gè)神奇的方法,嘗試用不那么詳盡,但是更加單刀直入的方式來(lái)講解一下如何使用這種算法在計(jì)算機(jī)上模擬水流。
這是整個(gè)系列的第一篇,主要簡(jiǎn)單介紹一下LBM的學(xué)習(xí)書(shū)籍,如果想更加系統(tǒng)的學(xué)習(xí),則可以直接去看我介紹的書(shū),而跳過(guò)本系列文章。
-
國(guó)內(nèi)介紹LBM的書(shū)中,比較常見(jiàn)的大致有三本。分別是:
紅皮書(shū)《格子玻爾茲曼方法》——基礎(chǔ)與工程應(yīng)用(附計(jì)算機(jī)代碼)
格子Boltzmann方法的理論及應(yīng)用
格子Boltzmann方法的原理及應(yīng)用

一本一本來(lái)介紹。
第一本大概是大家最容易搜到的一本,因?yàn)闀?shū)名是全中文的,搜格子玻爾茲曼方法,出來(lái)的肯定就是這個(gè)。但是這書(shū)其實(shí)是外國(guó)人寫(xiě)的,被翻譯成了中文。一般來(lái)說(shuō),國(guó)外的教材比國(guó)內(nèi)質(zhì)量高一些,當(dāng)然有前提,第一,這不是絕對(duì)的,第二,最好看原版的。
本書(shū)的作者是加拿大的默罕默德,阿普杜勒馬吉德。一看就是阿拉伯人啊。聽(tīng)說(shuō)有教授說(shuō)這本書(shū)是垃圾,我想說(shuō)的是,有點(diǎn)過(guò)分了……說(shuō)垃圾有點(diǎn)不尊重,但是對(duì)于我這樣不夠聰明的人來(lái)說(shuō),只看這本書(shū)確實(shí)沒(méi)什么卵用,既沒(méi)看懂原理,也沒(méi)學(xué)會(huì)方法。
所以并不太推薦,可能阿拉伯人的思維方式和中國(guó)人不太一樣吧,說(shuō)垃圾過(guò)分了,肯定有價(jià)值而且不低,但是不太適合0基礎(chǔ)入門(mén),看起來(lái)挺吃力的。
第二本,理論及應(yīng)用是何雅玲寫(xiě)的,一看就是個(gè)女士。寫(xiě)的挺好,算是我真正的入門(mén)教材了。尤其是附帶的C語(yǔ)言代碼,而且寫(xiě)的很規(guī)矩,簡(jiǎn)直就是用C語(yǔ)言在給大家講解,且各變量都給了說(shuō)明。這是最可取的地方,C語(yǔ)言不是工科生也能看懂,變量給了說(shuō)明,省的大家去猜了。理論部分也寫(xiě)的簡(jiǎn)單易懂。理論和程序配合起來(lái)看,很快就能完全懂得怎么做。如果只打算買(mǎi)一本LBM的書(shū),而且是0基礎(chǔ)入門(mén),那就是這本無(wú)疑了。但是當(dāng)中也有一些疏漏,會(huì)給讀者造成困擾。
第三本,原理及應(yīng)用,郭照立寫(xiě)的,最厚,且沒(méi)有程序,所以毫無(wú)疑問(wèn)也是理論上講的最詳細(xì)的。由于沒(méi)有程序,所以入門(mén)實(shí)踐的指導(dǎo)上稍微差一點(diǎn),但是就是詳細(xì)嘛,更嚴(yán)謹(jǐn),內(nèi)容也多,第二本書(shū)中讓人困擾的地方,這本書(shū)上就很清晰,比較適合理論上深入。
總的來(lái)說(shuō),我學(xué)的過(guò)程是三本書(shū)聯(lián)合起來(lái)看的,還包括一些網(wǎng)上的介紹。對(duì)我?guī)椭畲蟮漠?dāng)然是第二本的C語(yǔ)言部分。建議先盡量搞懂理論,如果不知道怎么做,再對(duì)照一下源程序,會(huì)有恍然大悟的感覺(jué)。其中第三本看的最少,因?yàn)榭壳皟杀疽呀?jīng)足夠入門(mén)了,但是可以看出來(lái)寫(xiě)的非常好,后續(xù)有時(shí)間應(yīng)該會(huì)好好研究一下。
本系列文章主要為了自己記錄LBM的使用方法,和與我有相同困擾的同學(xué)。理論部分省略推導(dǎo),只給出必要公式,主要是為程序鋪路。畢竟直接看書(shū),很容易淹沒(méi)在無(wú)數(shù)的公式中,直接看程序又不知道每個(gè)變量到底是什么。