溫劍鋒,覃一海
(廣西建設(shè)職業(yè)技術(shù)學(xué)院,南寧530000)
氣液兩相流是非常有趣自然現(xiàn)象,同時也是工業(yè)制造中常見的現(xiàn)象。氣泡在液體中產(chǎn)生、合并、上升、爆裂等現(xiàn)象在工業(yè)生產(chǎn)中有著重要的影響。在工業(yè)生產(chǎn)中,通常根據(jù)氣泡的動力學(xué)特點(diǎn),調(diào)整生產(chǎn)過程的參數(shù)提高生產(chǎn)效率。在醫(yī)療中,利用氣泡的運(yùn)動特性,將藥物運(yùn)送到患者的生病部位達(dá)到治病目的。在航運(yùn)過程中,通過減少高速運(yùn)轉(zhuǎn)的螺旋漿產(chǎn)生的空化氣泡達(dá)到保護(hù)螺旋漿的目的。
至今,眾多研究者對氣泡上升時出現(xiàn)行為進(jìn)行展開了深入的研究,如合并、變形、破裂、速度等。Li等人[1]用VOF方法研究了氣泡在液相中產(chǎn)生和上浮。付等人[2]根據(jù)氣泡在液體中的運(yùn)動過程,推導(dǎo)出了氣泡的運(yùn)動方程。田等人[3]用水平集方法等研究氣泡上升時的變形和運(yùn)動特點(diǎn),揭示了氣泡變形的原因。陳等人[4]研究了氣泡在浮力作用下的流場分規(guī)律,并提出了浮力作用的假設(shè)。
LBM是當(dāng)前主流的數(shù)值模擬方法,它具有算法簡單、邊界易于處理、適合并行處理等特點(diǎn),非常適合用于復(fù)雜多相流現(xiàn)象的模擬研究。CUDA是NVIDIA公司推出的解決復(fù)雜運(yùn)算的架構(gòu),它能使GPU在并行運(yùn)算、圖像處理等方面的能力大大提升。基于CUDA的LBM算法為數(shù)值模擬提供了更高效的計算方式,受到眾多學(xué)者的喜愛。
本文擬用LBM方法進(jìn)行建模,然后使用CUDA并行技術(shù)對LBM程度進(jìn)行加速計算,探索氣泡上升的形態(tài)變化和上升的速度變化等。
LBM編程簡單主要在于該模型的公式簡單、參數(shù)少,本文使用二維LBM模型進(jìn)行編程,它的基本公式如下:
其中,fi、是分布函數(shù),Ωi是碰撞因子、ei是單位速度、是平衡分布函數(shù)(ρ,u)、τ、ρ、u、δt分別是單馳豫時間、宏觀密度、宏觀速度、步長,展開為:
公式(1)包括了碰撞和遷移兩部分,碰撞的公式為:
遷移的公式為:
經(jīng)過多年的發(fā)展,用于多相流模擬的LBM模型有顏色模型[5]、SC 模型[6]、Zheng 模型[7],然而這些均存在一些不足,如顏色模型計算具有指數(shù)復(fù)雜性、穩(wěn)定性差,如偽勢模型計算虛速度大,Zheng模型不滿足伽利略不變性。在某些研究領(lǐng)域,這些模型的應(yīng)用受了限制。對此,覃等人[8]深入分析了以上模型存在的缺陷,提出了復(fù)合的LBM多相流模型,此模型能更好地進(jìn)行數(shù)值模擬,并具有較高的精確度和穩(wěn)定性。該模型的動量公式為:
遷移公式為:
上述方程經(jīng)過一系列的轉(zhuǎn)化,可恢復(fù)N-S方程:
本文主要使用(15)公式進(jìn)行編程模擬,通過計算Δp的值,將實(shí)驗計算的Δp值與理論進(jìn)行比較,以檢測模型的正確性。
其中,Δp表示氣泡內(nèi)外壓強(qiáng)差,R表示半徑,σ表示表面張力。計算區(qū)域定為201×201,界面厚度、氣相密度、液相密度、馳豫時間、表面張力、遷移量、序參等分別為:5、1、1000、0.875、0.1、100、499.5。通過模擬不同的半徑,求出內(nèi)外壓強(qiáng)差,然后用壓強(qiáng)差與半徑作圖,所得數(shù)據(jù)如表1表示,由表可見實(shí)驗值與理論值非常接近,計算誤差均在1%以下,由實(shí)驗可知本文采用的LBM滿足Laplace定律,可用于多相流的數(shù)值模擬之中。
表1 實(shí)驗結(jié)果與理論值對比
本文主要模擬二維單氣泡在浮力作用下上升的現(xiàn)象。每一相的密度和表面張力系數(shù)的取值與文章Takada[9]一樣。氣泡處于四壁平穩(wěn)的流場中。初始,氣泡處于計算區(qū)域為80×300的低區(qū)域中(流場高度的1/4)。氣泡內(nèi)初始序參設(shè)為φ*,氣泡外初始序參設(shè)為-φ*。在不同參數(shù)值(如表2所示),進(jìn)行了幾個數(shù)值模擬。由于氣泡的半徑很小,我們不必把界面厚設(shè)置太大。當(dāng)浮力和拖拽力達(dá)到平衡,氣泡將以幾乎不變的速率上升。事實(shí)上,速率并不是常量。氣泡在上升的時候,存在振蕩現(xiàn)象。表2展示模擬結(jié)果對比情況。很明顯,這些結(jié)果與VOF方法和Takada’s LBM吻合得非常好。氣泡在不同條件下的最終上升的形態(tài)如圖1所示。
表2 氣泡在浮力作用下上升的模擬參數(shù)
表3 氣泡在浮力作下上升的終點(diǎn)速率
圖1 不同參數(shù)下氣泡上升的最終形狀
維度劃分是CUDA優(yōu)化加速的其中方法之一。Grid和Block是劃分維度的重要單元,通過確定合理的比例使CPU性能發(fā)揮最大作用。在優(yōu)化時,可以將Block劃分一維、二維、三維,通常認(rèn)為維度越高,能劃分的線程數(shù)就越多,但是由于GPU的線程數(shù)有限,并不能盲目對Block進(jìn)行多維度劃分??紤]到計算規(guī)模,本文先將Block劃分一維,然后再將Block未利用的空間與Grid重新合并形成新的維度,這樣充分利用了空閑的線程進(jìn)行運(yùn)算,使程序并行效率達(dá)到最大化。將未進(jìn)行維度劃分的算法設(shè)為S0,已經(jīng)進(jìn)行維度劃分的算法為S1,演化10000步的計算結(jié)果,如表4所示,由表可見,經(jīng)過優(yōu)化加速后,流場越大獲得的加速比越大。因此,進(jìn)行大規(guī)模數(shù)值模擬運(yùn)算時,引入CUDA并行技術(shù)能大大提升程序運(yùn)行效率,能為更深入研究提供堅實(shí)的基礎(chǔ)。
表4 方案S0、S1的耗時和加速效果的比較
本文使用主流多相流LBM模型研究了氣泡上升的現(xiàn)象,通過多組不同的初始參數(shù)計算了氣泡上升的速度以及不同參數(shù)下氣泡上升的形狀,實(shí)驗與前人研究結(jié)果基本吻合。針對當(dāng)前程序計算效率低下問題,本文引入CUDA對LBM多相流程序進(jìn)行了加速計算,能獲得最高13.86倍的加速比,大大縮短了程序達(dá)到穩(wěn)定時需要的時間,能為更深入的研究縮短期限。接下來,筆者計劃在CUDA并行技術(shù)方面進(jìn)行更深入的探索,希望能為LBM程序的運(yùn)算減少更多的時間。