陳辛陽(yáng),聶滋森,蔣子超,楊耿超,姚清河
中山大學(xué)航空航天學(xué)院,廣東廣州 510006
格子玻爾茲曼算法(LBM,Lattice Boltzmann method) 起源自格子氣自動(dòng)機(jī)(LGA,lattice gas automaton),是一種新興的計(jì)算流體力學(xué)方法,相較于傳統(tǒng)計(jì)算流體力學(xué)(CFD, computational fluid dynamic) 方法,LBM 有易于處理邊界條件,適合復(fù)雜幾何形狀,程序結(jié)構(gòu)簡(jiǎn)單及可并行性高等優(yōu)點(diǎn)[1]。然而,LBM 存在計(jì)算資源消耗大以及對(duì)設(shè)備配置要求高等缺陷。具體來(lái)講,造成LBM 消耗大量計(jì)算資源的原因主要有兩點(diǎn)。第一,每一迭代內(nèi)的計(jì)算資源消耗大,針對(duì)這一方面的相關(guān)研究主要是利用GPU 并行的方法降低計(jì)算資源消耗,目前已經(jīng)形成了較為成熟的相關(guān)技術(shù)[2];第二,由于LBM 是一個(gè)顯式算法,為了保障計(jì)算的穩(wěn)定性和精度,計(jì)算步長(zhǎng)常常設(shè)置得較短,而較短的步長(zhǎng)將導(dǎo)致迭代次數(shù)增多,大幅增加計(jì)算資源的消耗[3]。本文將從第二點(diǎn)出發(fā),以單次模型計(jì)算代替較多計(jì)算步長(zhǎng)小的普通LBM 迭代,從而減少計(jì)算資源的消耗。
在降低CFD 模型計(jì)算復(fù)雜度方面研究較多的是降維法(ROM,reduced order methods),比如:Xie 等的一種基于數(shù)據(jù)驅(qū)動(dòng)的降維法(DDFROM),在構(gòu)建非封閉ROM 后使用數(shù)據(jù)驅(qū)動(dòng)模型矯正ROM,提高了模型的精度[4];De Witt 和Lessig 等提出了改進(jìn)ROM 法,提高計(jì)算效率并在小自由度下完成了可靠的流場(chǎng)可視化模擬[5]。ROM 方法在一些實(shí)際運(yùn)用中也體現(xiàn)了其良好的性能與可觀的加速效果,Silva 等在空氣動(dòng)力學(xué)計(jì)算中嘗試引入ROM 下的CFD 算法,取得了一定的成果[6]。然而,在早期的相關(guān)研究中大部分ROM 的結(jié)構(gòu)較為簡(jiǎn)單,影響了其性能。
隨著機(jī)器學(xué)習(xí)類(lèi)方法的飛速發(fā)展,相關(guān)算法在各領(lǐng)域內(nèi)應(yīng)用廣泛,在CFD 領(lǐng)域中也是如此。利用ROM 類(lèi)算法后,相關(guān)模型的復(fù)雜度得到了提升,模型性能也得到了提升。在熱對(duì)流問(wèn)題的研究中,Yasin 等提出利用支持向量機(jī)(SVM, support vector machine) 對(duì)溫度分布和流場(chǎng)進(jìn)行預(yù)測(cè)[7]。 而在針對(duì)粒子法的數(shù)據(jù)驅(qū)動(dòng)研究中,Ladicky 等引入回歸森林(regression forests) 方法,近似模擬粒子行為模式,循環(huán)使用粒子預(yù)測(cè)模型完成對(duì)流場(chǎng)長(zhǎng)時(shí)間運(yùn)行的模擬[8]。
上述機(jī)器學(xué)習(xí)方法較為傳統(tǒng),近年來(lái)的研究證實(shí)其效果不如包括深度學(xué)習(xí)算法在內(nèi)的新型機(jī)器學(xué)習(xí)方法[9]。由Guo等提出的網(wǎng)絡(luò)模型完成從邊界條件直接到穩(wěn)態(tài)結(jié)果的預(yù)測(cè)過(guò)程[10]。這一直接預(yù)測(cè)穩(wěn)態(tài)結(jié)果的思路精度較高,但是對(duì)于非穩(wěn)態(tài)問(wèn)題以及需要關(guān)注流場(chǎng)發(fā)展過(guò)程的穩(wěn)態(tài)問(wèn)題并不適用。由Tompson 等運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolution neuron network) 取代壓強(qiáng)求解器,通過(guò)取代迭代過(guò)程降低了計(jì)算資源消耗[11]。然而,在顯式LBM 算法中并沒(méi)有一個(gè)迭代求解單個(gè)方程的子過(guò)程,也就導(dǎo)致這種思路不適合運(yùn)用到LBM中。在對(duì)LBM 壓縮提速方面,Hennigh 提出了Lat-Net,利用深度學(xué)習(xí)模型對(duì)LBM 過(guò)程進(jìn)行信息提取完成了一個(gè)神經(jīng)網(wǎng)絡(luò)組成的流場(chǎng)模擬算法,在網(wǎng)絡(luò)中特別關(guān)注了對(duì)邊界條件信息的保持[12]。但是,由于網(wǎng)絡(luò)預(yù)測(cè)產(chǎn)生的誤差較大,在反復(fù)迭代中誤差累積較為明顯,導(dǎo)致結(jié)果有一定的偏差。同時(shí)對(duì)于邊界條件不鮮明的問(wèn)題,該模型的效果有待驗(yàn)證。
本文中采用深度學(xué)習(xí)模型對(duì)原有LBM 中的計(jì)算過(guò)程進(jìn)行替換,以一個(gè)模型計(jì)算代替原有算法的多個(gè)迭代過(guò)程,達(dá)到減少迭代次數(shù)的目的,本文中將該模型稱(chēng)為壓縮LBM ( C-LBM, compressed LBM) 模型。本文所采用的網(wǎng)絡(luò)應(yīng)用領(lǐng)域?yàn)閳D像生成領(lǐng)域,在相關(guān)領(lǐng)域內(nèi)已有一些成熟的相關(guān)研究[13-15]。而,本文采用了一個(gè)較為新穎的網(wǎng)絡(luò)結(jié)構(gòu)。具體來(lái)講,C-LBM 模型是以卷積長(zhǎng)短期記憶網(wǎng)絡(luò)(ConvLSTM, convolutional LSTM network)[16]組建的編碼網(wǎng)絡(luò)和以殘差神經(jīng)網(wǎng)絡(luò)(Resnet, residual network)[17]組建的解碼網(wǎng)絡(luò)為主體的深度神經(jīng)網(wǎng)絡(luò)模型,通過(guò)輸入帶有時(shí)間和空間雙重維度的流場(chǎng)信息取得對(duì)跨越多個(gè)迭代后流場(chǎng)情況的預(yù)測(cè)結(jié)果。該模型的優(yōu)勢(shì)在于具備適應(yīng)非穩(wěn)態(tài)問(wèn)題和穩(wěn)態(tài)問(wèn)題過(guò)程模擬的能力,同時(shí)具有較好的精度。
LBM 中主要研究的流場(chǎng)物理量是粒子速度分布函數(shù),通過(guò)刻畫(huà)粒子速度分布函數(shù)隨時(shí)空的變化,完成對(duì)各種宏觀物理量變化情況的求解。粒子速度分布函數(shù)在統(tǒng)計(jì)力學(xué)中是一個(gè)十分重要的基本物理量,常用符號(hào)f(x,ε,t)表示。該物理量的定義為:在不考慮粒子的轉(zhuǎn)動(dòng)而只考慮其平動(dòng)的前提下,在某一時(shí)刻t,在空間中以x為中心的微元dx內(nèi),速度處于ε與ε+ dε之間的分子數(shù)為fdxdε。在LBM 中粒子分布函數(shù)被離散至各個(gè)離散速度方向并記為fi,本文使用的針對(duì)二維的D2Q9模型中共有9個(gè)離散速度方向,各個(gè)方向的速度記為ci,fi與ci一一對(duì)應(yīng)[18]。由此,相應(yīng)的宏觀密度和速度為
LBGK 模型是基于Bhatnagar-Gross-Krook(BGK) 碰撞模型算子建立的一種簡(jiǎn)單LBM 模型,其離散形式控制方程為
該方程即為L(zhǎng)BGK 方程, 其中τc為松弛因子。LBGK 方程包括對(duì)粒子遷移和碰撞兩方面的描述,在LBM中將這兩個(gè)部分分開(kāi)計(jì)算,其表達(dá)式為
其中公式(3)描述粒子碰撞過(guò)程,而公式(4)表示遷移過(guò)程[19]。
通過(guò)以上關(guān)于LBGK 模型的描述不難發(fā)現(xiàn),在給定空間大?。▁,y) 下,整個(gè)計(jì)算過(guò)程中的核心物理量,即離散粒子速度分布函數(shù),實(shí)際上是一個(gè)大小不變的三維數(shù)組,其大小為(x,y,9),其中最后一維對(duì)應(yīng)離散速度數(shù),而二維卷積運(yùn)算所需要的輸入規(guī)格剛好與這一數(shù)組相對(duì)應(yīng),即前兩維表示空間上的長(zhǎng)和寬,最后一維為通道數(shù)剛好對(duì)應(yīng)離散速度數(shù)。由此,本文的網(wǎng)絡(luò)模型中將原有離散粒子速度分布函數(shù)信息通過(guò)卷積的形式提取并完成相應(yīng)計(jì)算,而卷積運(yùn)算速度較快且對(duì)原有信息的保全度高,完成運(yùn)算資源消耗少且能保證一定精度的算法。
本文中的網(wǎng)絡(luò)模型主要由ConvLSTM 和Resnet組成。C-LBM 模型的編碼部分由ConvLSTM 網(wǎng)絡(luò)組成,ConvLSTM 對(duì)于空間和時(shí)間的雙重處理能力可以將其視為最適合本文建立預(yù)測(cè)模型的工具[17]。解碼部分由Resnet 組成,由于其擁有抗退化的能力,可以降低本模型的訓(xùn)練難度,使得模型的擬合效果更好[18]。圖1 為本文的網(wǎng)絡(luò)結(jié)構(gòu)圖,其中輸入記為F(T)和F(T+100),輸出記為F(T+1100),該粒子分布函數(shù)F(T)(與原LBM 計(jì)算完成T次迭代的結(jié)果對(duì)應(yīng)) 為
圖1 C-LBM模型網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig. 1 C-LBM model network diagram
該網(wǎng)絡(luò)的輸入為相隔100個(gè)迭代、兩個(gè)時(shí)刻的分布函數(shù)。對(duì)于二維問(wèn)題,兩個(gè)輸入均為三維矩陣,第一維對(duì)應(yīng)空間長(zhǎng)度,第二維對(duì)應(yīng)空間寬度,第三維對(duì)應(yīng)神經(jīng)網(wǎng)絡(luò)中通道數(shù)。整個(gè)預(yù)測(cè)網(wǎng)絡(luò)的結(jié)構(gòu)大致包括輸入預(yù)處理(標(biāo)準(zhǔn)化輸入),通過(guò)堆累ConvLSTM 層的網(wǎng)絡(luò)提取特征及擬合,Resnet 解碼,卷積層輸出以及輸出結(jié)果還原(逆標(biāo)準(zhǔn)化輸出) 五個(gè)過(guò)程,即從已有分布函數(shù)結(jié)果抽取時(shí)空信息,得到對(duì)未來(lái)分布函數(shù)的預(yù)測(cè)結(jié)果。預(yù)處理內(nèi)容為標(biāo)準(zhǔn)化過(guò)程,由于在訓(xùn)練中輸出也進(jìn)行了標(biāo)準(zhǔn)化處理,因此在使用時(shí)需對(duì)輸出結(jié)果進(jìn)行還原處理。具體來(lái)講,這一處理為神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集標(biāo)準(zhǔn)化中的Z-Score標(biāo)準(zhǔn)化
其中μ為數(shù)據(jù)集均值,σ為數(shù)據(jù)集標(biāo)準(zhǔn)差,x為處理前數(shù)據(jù)而z為處理后數(shù)據(jù)。同時(shí),ConvLSTM 的狀態(tài)(stateful) 被設(shè)置為真(true), 批次大?。╞atch size) 被設(shè)置為1。對(duì)于本文中的stateful 為true的循環(huán)神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)訓(xùn)練的batch size與模型使用的batch size 大小是相同且固定的。為了構(gòu)建單次只利用一批數(shù)據(jù)且內(nèi)容為兩個(gè)輸入到一個(gè)輸出的模型,在訓(xùn)練時(shí)必須將batch size設(shè)置為1。
損失函數(shù)(loss function) 在深度學(xué)習(xí)中有著極其重要的意義,本文針對(duì)LBM 的物理背景結(jié)合神經(jīng)網(wǎng)絡(luò)訓(xùn)練中常用的損失函數(shù),設(shè)計(jì)了一個(gè)針對(duì)C-LBM 模型的損失函數(shù),命名為CLBMLOSS,其表達(dá)式為
其中表示預(yù)處理還原后預(yù)測(cè)結(jié)果,fi表示還原后對(duì)應(yīng)真實(shí)值,表示還原前預(yù)測(cè)結(jié)果,表示還原前對(duì)應(yīng)真實(shí)值。本文中,系數(shù)α1=90,系數(shù)α2=10,目的在于使各單項(xiàng)誤差數(shù)量級(jí)接近,保證其均能發(fā)揮作用。
CLBMLOSS的第一部分為在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中常用的二范數(shù)誤差MSE,即預(yù)測(cè)值與真實(shí)值相減結(jié)果平方的平均值。第二部分被命名為L(zhǎng)BMLOSS,其內(nèi)容為利用真實(shí)值與預(yù)測(cè)值經(jīng)過(guò)碰撞過(guò)程的計(jì)算結(jié)果做差。神經(jīng)網(wǎng)絡(luò)中輸入和輸出的分布函數(shù)均是計(jì)算到每個(gè)迭代的末尾時(shí)的結(jié)果,即完成了碰撞和遷移兩個(gè)過(guò)程的計(jì)算后得到的結(jié)果。由此,可以將這兩個(gè)輸出結(jié)果代入再完成一次碰撞過(guò)程,這樣得到兩個(gè)碰撞一次后的分布函數(shù)結(jié)果,如果真實(shí)值和預(yù)測(cè)值完全相同則該誤差為零。通過(guò)增加該部分誤差,帶入了LBM 物理背景的信息,包括流場(chǎng)速度輸入和雷諾數(shù)等。與此同時(shí),這一項(xiàng)誤差的引入使得預(yù)測(cè)值盡可能與LBM 相適應(yīng)。具體來(lái)講LLBMLOSS計(jì)算公式為
其中為由真實(shí)值fi計(jì)算得來(lái)的平衡態(tài)分布函數(shù),而為由預(yù)測(cè)值計(jì)算得來(lái)的平衡態(tài)分布函數(shù)。式(7) 第三項(xiàng)誤差內(nèi)容為將預(yù)測(cè)值的9 個(gè)通道求和,將其與真實(shí)值9 個(gè)通道求和結(jié)果相減,9 個(gè)通道和的物理意義是在各個(gè)格點(diǎn)處的密度,該誤差的意義在于引入一個(gè)宏觀物理量對(duì)模型進(jìn)行調(diào)控。
本文中訓(xùn)練采用反向傳播算法(back propagation),該方法由Hinton 等提出。簡(jiǎn)單的講,其內(nèi)容包括激勵(lì)傳播和權(quán)重更新兩個(gè)部分,先正向傳播得到輸出再反向傳播得到響應(yīng)誤差,之后利用誤差獲得梯度并對(duì)權(quán)重進(jìn)行更新,達(dá)到訓(xùn)練網(wǎng)絡(luò)的目的[20]。本文中利用的優(yōu)化算法為自適應(yīng)動(dòng)量的隨機(jī)優(yōu)化方法(adaptive moment estimation)[21]。
本文中采用方腔環(huán)流模型完成對(duì)模型的訓(xùn)練與測(cè)試,該模型被廣泛運(yùn)用于計(jì)算流體力學(xué)算法的驗(yàn)證中[22]。本文選擇方腔環(huán)流模型作為實(shí)驗(yàn)?zāi)P偷脑蛑饕幸韵聨c(diǎn):首先,方腔環(huán)流問(wèn)題的初始條件和邊界條件極為簡(jiǎn)單,程序設(shè)計(jì)較為簡(jiǎn)便;其次,方腔環(huán)流模型下的流場(chǎng)特點(diǎn)鮮明,便于結(jié)果之間進(jìn)行對(duì)比;最后,方腔環(huán)流模型的流場(chǎng)情況隨參數(shù)變化較為明顯,特別是在不同雷諾數(shù)下流場(chǎng)變化較為明顯,有利于測(cè)試模型的泛化能力。值得注意的是,雖然方腔環(huán)流問(wèn)題是一個(gè)穩(wěn)態(tài)問(wèn)題,但是在本文的研究中著重關(guān)注整個(gè)流場(chǎng)演化過(guò)程,而并非僅僅關(guān)注計(jì)算的最終穩(wěn)態(tài)結(jié)果,由此證明該模型對(duì)流場(chǎng)發(fā)展過(guò)程的還原能力以及在非穩(wěn)態(tài)問(wèn)題中的潛力。
表1為本文生成訓(xùn)練集和測(cè)試集時(shí)LBM的相關(guān)基本物理參數(shù)的設(shè)定。
表1 生成流場(chǎng)的物理參數(shù)Table 1 Physical parameters of the flow field
表1 中L0、t0、v0分別為單位長(zhǎng)度、單位時(shí)間和單位速度。本算例中的訓(xùn)練集一共包含345組,測(cè)試集一共包括5組,測(cè)試集不參與訓(xùn)練過(guò)程,每組訓(xùn)練集和測(cè)試集中所包含的樣本批數(shù)相同,均為5批,一組樣本內(nèi)打開(kāi)stateful 關(guān)聯(lián)。由表達(dá)式表示整個(gè)訓(xùn)練集,一組訓(xùn)練集或測(cè)試集的輸入集合GIN和輸出集合GOUT為
其中j表示組數(shù),j=0,1,2,…,350,Tj表示第j組內(nèi)第一批輸入的第一個(gè)時(shí)間步對(duì)應(yīng)的原LBM 計(jì)算中所需的迭代次數(shù)。
為驗(yàn)證ConvLSTM 與Resnet 網(wǎng)絡(luò)結(jié)構(gòu)以及損失函數(shù)CLBMLOSS 對(duì)模型性能的影響,本文訓(xùn)練了3個(gè)使用不同網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練損失函數(shù)的模型,分別 以“MSE+ConvLSTM+Resnet”,“CLBMLOSS+ConvLSTM”和“CLBMLOSS+ConvLSTM+Resnet”進(jìn)行標(biāo)記,在3. 2 的誤差分析中也將沿用這三個(gè)模型進(jìn)行相關(guān)測(cè)試。圖2中展示了這三個(gè)模型的訓(xùn)練過(guò)程中對(duì)應(yīng)損失函數(shù)值的下降過(guò)程,橫坐標(biāo)為訓(xùn)練輪數(shù)。
圖2 訓(xùn)練中損失函數(shù)值下降情況Fig. 2 Loss function value decline during training
圖2中,使用ConvLSTM+Resnet 結(jié)構(gòu)后損失函數(shù)最終收斂數(shù)值明顯較低,初步證明了這種結(jié)構(gòu)的模型具有更好的學(xué)習(xí)能力和抗退化能力。相較于MSE 訓(xùn)練的模型,CLBMLOSS 訓(xùn)練的模型損失函數(shù)最終收斂數(shù)值略低,表明引入CLBMLOSS 對(duì)模型的學(xué)習(xí)能力沒(méi)有產(chǎn)生嚴(yán)重影響。同時(shí)CLBMLOSS 包括MSE 部分,同一結(jié)果下前者必然大于后者,而圖2中在模型收斂后使用CLBMLOSS 訓(xùn)練的模型損失函數(shù)值更低。由此可知,若使用相同評(píng)價(jià)標(biāo)準(zhǔn),利用CLBMLOSS訓(xùn)練的模型精度更高。
誤差分析部分首先驗(yàn)證模型在Re=2 000 的測(cè)試集上的精度。本文模型的重要?jiǎng)?chuàng)新點(diǎn)的第一部分是結(jié)合ConvLSTM 與Resnet 的網(wǎng)絡(luò)結(jié)構(gòu),第二部分是針對(duì)LBM 物理背景設(shè)計(jì)的損失函數(shù)CLBMLOSS,以下也將檢驗(yàn)這些創(chuàng)新點(diǎn)對(duì)模型精度帶來(lái)的增益效果。
Re=2 000 的實(shí)驗(yàn)集共6 組,每組5 批樣本,總共30 批樣本,將這些樣本依次編號(hào)為1 到30。由此1 到5 為一組,6 到10 為一組,依此類(lèi)推,各組之間的狀態(tài)(state) 不能傳遞,即每隔5 批就將state 清零。以下利用均方差總體評(píng)價(jià)模型輸出精度情況,令函數(shù)F (x,y,i) 表示位置為(x,y) 處,全局均方差計(jì)算公式為
圖3為各個(gè)不同網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方法下的全局均方差值,橫軸為各批次預(yù)測(cè)輸出對(duì)應(yīng)普通LBM結(jié)果的迭代次數(shù),即第一組樣本為1 800、1 900、2 000、2 100和2 200次迭代結(jié)果,依此類(lèi)推。
圖3 Re=2 000全局均方差誤差Fig. 3 Global mean square error when Re=2 000
圖3中,添加了Resnet 解碼器的網(wǎng)絡(luò)在誤差上明顯低于未添加解碼器的網(wǎng)絡(luò),表明了Resnet 解碼器對(duì)模型精度提升的貢獻(xiàn)。同時(shí),利用CLBMLOSS對(duì)模型預(yù)測(cè)精度產(chǎn)生了一定幅度的積極影響,這也證明了使用CLBMLOSS 在提升預(yù)測(cè)準(zhǔn)確性上的意義。從圖3中不難看出,每組的第一批樣本的預(yù)測(cè)精度弱于同組內(nèi)其他批次的,這是由于第一批預(yù)測(cè)模型中還沒(méi)有狀態(tài)量(state) 的數(shù)據(jù),導(dǎo)致預(yù)測(cè)的根據(jù)不足,從第二批預(yù)測(cè)開(kāi)始模型同時(shí)使用本批數(shù)據(jù)和state 量,精度較高,這也提示在使用模型時(shí)最好用第二批及以后的數(shù)據(jù)作為最終輸出結(jié)果。
下面,通過(guò)速度場(chǎng)標(biāo)量圖4比對(duì)真實(shí)結(jié)果,并展示來(lái)自真實(shí)值與預(yù)測(cè)值之間的殘差圖,同時(shí)附加對(duì)居中行和居中列結(jié)果的比較。以下誤差分析均在實(shí)驗(yàn)集5 上(對(duì)應(yīng)普通LBM 算法完成2 200 次迭代結(jié)果) 進(jìn)行,輸出結(jié)果對(duì)應(yīng)普通LBGK 算法完成2 000 次迭代。其中,圖4 (a1) 與4 (a2) 為輸入數(shù)據(jù)所求得的速率標(biāo)量場(chǎng);圖4 (b) 為輸出結(jié)果對(duì)應(yīng)的常規(guī)LBM 速率標(biāo)量場(chǎng)即真實(shí)值;圖4(c1)、4 (d1) 和4 (e1) 為各模型預(yù)測(cè)的速率標(biāo)量場(chǎng);圖4 (c2)、4 (d2) 和4 (e2) 為各模型預(yù)測(cè)值與真實(shí)值之間的絕對(duì)誤差。
圖4 Re=2 000時(shí)全流場(chǎng)的可視化結(jié)果與誤差分析Fig. 4 Visualization results and error analysis of the flow field when Re=2 000
從圖4 中不難看出,同時(shí)利用了ConvLSTM+Resnet結(jié)構(gòu)和CLBMLOSS優(yōu)化函數(shù)的模型有更高的精度。 首先, 從對(duì)比中可以看出, 具有Conv-LSTM+Resnet 結(jié)構(gòu)的模型最大誤差和整體誤差都明顯小于沒(méi)有這一結(jié)構(gòu)的模型,這體現(xiàn)了Resnet 提高了模型復(fù)雜度和學(xué)習(xí)能力;其次,具有CLBMLOSS 優(yōu)化函數(shù)的模型零誤差及極低誤差區(qū)域面積更大,這是由于該損失函數(shù)的引入增加了物理信息,引導(dǎo)模型加強(qiáng)識(shí)別流場(chǎng)中的低速部分,同時(shí)提高各個(gè)通道之間的關(guān)聯(lián)性,從而有效地降低了誤差,尤其是低速區(qū)域的誤差。為了進(jìn)一步驗(yàn)證,以下對(duì)比在居中行與居中列處,各個(gè)模型預(yù)測(cè)的速率結(jié)果和真實(shí)速率結(jié)果,同時(shí)加入絕對(duì)誤差圖像,即真實(shí)值與預(yù)測(cè)值的絕對(duì)差值。圖5(a1)與5(a2)展示了結(jié)果曲線,圖5(b1)與5(b2)則是誤差曲線圖。
圖5 Re=2 000時(shí)居中行與列可視化結(jié)果與誤差分析Fig. 5 Middle row and column visualization results and error analysis when Re=2 000
圖5進(jìn)一步證明了從二范數(shù)誤差圖中所得出結(jié)論的正確性。加入Resnet 降低了最大誤差,而CLBMLOSS 的引入對(duì)低速區(qū)域誤差降低有較好作用,在高速區(qū)有無(wú)CLBMLOSS 對(duì)精度的影響并不明顯,不過(guò)在高速區(qū)所有模型的誤差相較于真實(shí)值都很小,影響并不明顯??偠灾?,該實(shí)驗(yàn)體現(xiàn)了ConvLSTM 層和Resnet 層組合網(wǎng)絡(luò)以及CLBMLOSS損失函數(shù)的強(qiáng)大功效。
為了進(jìn)一步驗(yàn)證本文中各模型在泛化問(wèn)題中的表現(xiàn),本文選用了Re=4 000 的非訓(xùn)練雷諾數(shù)測(cè)試集,對(duì)該測(cè)試集下的精度進(jìn)行了校驗(yàn)。同樣的,實(shí)驗(yàn)集共6組,每組5批樣本,總共30批樣本,將這些樣本依次編號(hào)為1 到30。圖6 是不同網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方法下的全局均方差值,橫軸為各批次預(yù)測(cè)輸出對(duì)應(yīng)普通LBM 結(jié)果的迭代次數(shù),即第一組樣本對(duì)應(yīng)1 900、2 000、2 100、2 200 和2 300 次迭代結(jié)果,依此類(lèi)推。
從圖6 中可以看出,CLBMLOSS 的引入在提升模型泛化能力中的效果較為明顯,引入CLBMLOSS損失函數(shù)的兩個(gè)模型預(yù)測(cè)精度更高,這是由于加入CLBMLOSS 后在優(yōu)化過(guò)程中引入了雷諾數(shù)信息,有效增強(qiáng)了模型物理泛用性。在這一部分實(shí)驗(yàn)中,加入Resnet 的網(wǎng)絡(luò)只在約半數(shù)的批次中有更高精度。在這一點(diǎn)上,我們認(rèn)為可能網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜化增大了過(guò)擬合的程度,不過(guò)基于上一個(gè)實(shí)驗(yàn)中Resnet的增強(qiáng)效果,我們依然認(rèn)可引入Resnet的提升意義。
圖6 Re=4 000全局均方差誤差Fig. 6 Global mean square error when Re=4 000
同樣的,圖7為預(yù)測(cè)結(jié)果精度和真實(shí)值與預(yù)測(cè)值之間的殘差,同時(shí)附加對(duì)居中行和居中列結(jié)果的比較。以下誤差分析均在實(shí)驗(yàn)集25 上進(jìn)行(對(duì)應(yīng)普通LBM 算法完成4 200個(gè)迭代)。同樣的,圖7(a1) 與7 (a2) 為輸入數(shù)據(jù)所求得的速率標(biāo)量場(chǎng),圖7 (b) 為輸出結(jié)果所對(duì)應(yīng)的常規(guī)LBM 速率標(biāo)量場(chǎng)即真實(shí)值,圖7 (c1)、7 (d1) 和7 (e1) 為各模型預(yù)測(cè)的速率標(biāo)量場(chǎng),圖7 (c2)、7 (d2) 和7(e2) 為各模型預(yù)測(cè)值與真實(shí)值之間絕對(duì)誤差。為了進(jìn)一步驗(yàn)證,同樣對(duì)比在居中行與居中列處各個(gè)模型的預(yù)測(cè)速率和真實(shí)速率,同時(shí)加入絕對(duì)誤差圖像,即真實(shí)值與預(yù)測(cè)值的絕對(duì)差值。圖8(a1) 與8 (a2) 展示了結(jié)果曲線,圖8 (b1) 與8(b2) 則是誤差曲線圖。
圖8 Re=4 000居中行與列可視化結(jié)果與誤差分析結(jié)果Fig. 8 Middle row and column visualization results and error analysis when Re=4 000
從圖7中可以明顯看出CLBMLOSS 在模型泛化能力方面的提升,總體誤差和最大誤差都明顯下降,同時(shí)在上個(gè)實(shí)驗(yàn)中提到的對(duì)低速區(qū)精度的優(yōu)化效果也依然存在。
圖7 Re=4 000時(shí)全流場(chǎng)可視化結(jié)果與誤差分析結(jié)果Fig.7 Visualization results and error analysis of the flow field when Re=4 000
從圖7 和圖8 中的誤差數(shù)據(jù)可以看出,Conv-LSTM 和Resnet 組成的網(wǎng)絡(luò)結(jié)構(gòu)以及CLBMLOSS 損失函數(shù)對(duì)網(wǎng)絡(luò)精度的提升有積極意義;同時(shí),本模型具備一定程度的多雷諾數(shù)泛化能力,在不利用Re=4 000 訓(xùn)練集訓(xùn)練的前提下,仍然可以應(yīng)用于相關(guān)算例。
本文測(cè)試平臺(tái)為Intel (R) Core (TM) i7-9750H CPU@ 2. 60Hz 以及NVIDIA GeForce GTX 1660 Ti。這一平臺(tái)屬于典型的家用機(jī)配置,該測(cè)試環(huán)境有利于模擬本模型算法在受限制的計(jì)算機(jī)能下的計(jì)算能力,這也是本算法的設(shè)計(jì)目標(biāo)應(yīng)用領(lǐng)域,即針對(duì)計(jì)算能力有限的設(shè)備完成具備嚴(yán)謹(jǐn)物理背景的流體仿真。表2中展示了不同雷諾數(shù)下不同時(shí)段利用模型完成計(jì)算和原有算法計(jì)算的耗時(shí)對(duì)比,時(shí)段由完成的迭代數(shù)量表示。
表2 耗時(shí)對(duì)比Table 2 Time-consuming comparison
從表2中不難看出,計(jì)算耗時(shí)與計(jì)算區(qū)間和雷諾數(shù)并無(wú)關(guān)聯(lián),原串行算法耗時(shí)約為模型計(jì)算的15倍。在評(píng)價(jià)LBM 的計(jì)算效率時(shí)引入一個(gè)專(zhuān)門(mén)量,即每秒百萬(wàn)格子更新數(shù)(MLUPs, million lattice updates per second),其計(jì)算公式為
其中nlattice為格子單元的數(shù)量,compute time 為計(jì)算時(shí)間。本文中的算例下nlattice=25 600,表3 列出了C-LBM 模型下連續(xù)預(yù)測(cè)計(jì)算過(guò)程的各項(xiàng)耗時(shí)及由此計(jì)算得到的MLUPs。對(duì)于C-LBM 模型由于其計(jì)算一次相當(dāng)于普通LBM 計(jì)算1 000 次,所以在計(jì)算其對(duì)應(yīng)的MLUPs時(shí)還需要考慮到這一對(duì)應(yīng)關(guān)系。
表3 計(jì)算效率實(shí)驗(yàn)結(jié)果Table 3 Calculation efficiency experiment results
在家用級(jí)別平臺(tái)上,本文新模型的計(jì)算效率為串行LBM 程序的15 倍左右。由此可見(jiàn),相較于串行LBM 程序,本文提出的新模型在減小計(jì)算資源消耗方面效果顯著,該算法的實(shí)驗(yàn)結(jié)果達(dá)到預(yù)期。
為提高傳統(tǒng)LBM 的計(jì)算效率,本文實(shí)現(xiàn)了對(duì)LBM 原有計(jì)算過(guò)程的簡(jiǎn)化壓縮,克服LBM 在消耗計(jì)算資源方面的劣勢(shì)?;谝陨夏繕?biāo),本文利用ConvLSTM 層和Resnet 層等深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)了一個(gè)預(yù)測(cè)網(wǎng)絡(luò)模型并命名為C-LBM 模型,該模型通過(guò)輸入早期的粒子分布函數(shù)數(shù)據(jù)對(duì)跨越多個(gè)迭代后的粒子分布函數(shù)進(jìn)行預(yù)測(cè)。完成模型訓(xùn)練后,本文對(duì)該模型預(yù)測(cè)精度以及計(jì)算效率進(jìn)行了分析與驗(yàn)證,得出了該模型具備基本可靠性和一定泛化能力的結(jié)論,并達(dá)到了大幅壓縮計(jì)算資源消耗的目標(biāo)。