梁欣鑫, 朱曉臨, 劉洋洋, 閆志偉
(合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230009)
自適應(yīng)分層定位流體仿真模型
梁欣鑫, 朱曉臨, 劉洋洋, 閆志偉
(合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230009)
文章將自適應(yīng)分層模型與3種現(xiàn)有的粒子方法相結(jié)合,得到3種改進(jìn)的粒子方法,并對(duì)流體粒子進(jìn)行大小粒子分層,可減少模擬使用的粒子,從而降低了原始方法的計(jì)算量;而通過使用較小粒子覆蓋于流體表面,使得改進(jìn)后的方法表面細(xì)節(jié)效果更佳。通過嵌入自適應(yīng)分層模型,使得改進(jìn)后的3種方法的計(jì)算效率得到了提高,表面細(xì)節(jié)也得到了保留甚至更佳。
流體模擬;自適應(yīng);分層
流體模擬是計(jì)算機(jī)圖形學(xué)中重要的研究?jī)?nèi)容,特別是對(duì)液體的模擬。光滑粒子動(dòng)力學(xué)(smoothed particle hydrodynamics,SPH)方法是一種用于液體模擬的主流粒子方法,文獻(xiàn)[1-4]成功地將天體物理學(xué)中的SPH 方法應(yīng)用到模擬連續(xù)固體力學(xué)和流體力學(xué)中,實(shí)現(xiàn)了流場(chǎng)中的激波強(qiáng)間斷現(xiàn)象;但是由于SPH方法中目標(biāo)粒子的密度對(duì)周圍粒子數(shù)量和位置分布敏感,加上模型的非結(jié)構(gòu)性導(dǎo)致了模擬流體的不可壓縮性難以保證,表面細(xì)節(jié)效果不理想。文獻(xiàn)[5]通過對(duì)三次B樣條核函數(shù)的測(cè)試,指出了SPH方法不能保證張力的穩(wěn)定性,可以通過放大有效應(yīng)力來減小擾動(dòng)。文獻(xiàn)[6-7]中根據(jù)粒子的稠密程度通過SPH方法動(dòng)態(tài)調(diào)節(jié)粒子的支集半徑,雖然加快了SPH方法的模擬速度,但是降低了流體的表面細(xì)節(jié)效果。文獻(xiàn)[8]在SPH方法中加入一個(gè)人工壓力項(xiàng),很好地解決了流體模擬中表面張力不穩(wěn)定的問題,提升了模擬效果。文獻(xiàn)[9]構(gòu)建了一種可以對(duì)流體的自由表面交互模擬的SPH模型,此后SPH方法才正式廣泛應(yīng)用于模擬不可壓縮流體以及多相流體模擬。文獻(xiàn)[10]提出了一種在GPU通用平臺(tái)上的SPH模擬方法,計(jì)算效率約為傳統(tǒng)SPH方法的6倍,解決了SPH方法實(shí)時(shí)模擬的難題。文獻(xiàn)[11]提出了一種基于SPH的非均勻粒子流體模擬方法,引入由粒子的位置、所受壓力和黏性力3種因素決定的精細(xì)度參數(shù),減少了同等場(chǎng)景下模擬需要的粒子數(shù),提高了計(jì)算速度。
文獻(xiàn)[12]提出了半隱式移動(dòng)粒子(moving-particle semi-implicit,MPS)方法。該方法提出之初是為了解決不可壓縮流體的模擬問題,用于模擬水體潰壩。MPS方法是一種半隱式方法,對(duì)流項(xiàng)是通過求解Poisson方程得到,而其他物理量則是通過顯式方法得到。相比于SPH方法,MPS提出的時(shí)間還比較短,但因其能保證流體的不可壓縮性,越來越多的學(xué)者關(guān)注MPS方法,將其應(yīng)用到新場(chǎng)景或者對(duì)方法本身提出改進(jìn)。
文獻(xiàn)[13]使用MPS方法對(duì)流體的晃動(dòng)問題進(jìn)行了研究;文獻(xiàn)[14]在模擬多相流體以及中等規(guī)模的流體時(shí),結(jié)合網(wǎng)格對(duì)MPS進(jìn)行改進(jìn);文獻(xiàn)[15]對(duì)MPS方法中使用不同的核函數(shù)進(jìn)行了討論,從核函數(shù)的選取上增強(qiáng)了MPS方法的穩(wěn)定性;文獻(xiàn)[16]使用泰勒展開,對(duì)離散后粒子的局部坐標(biāo)進(jìn)行近似,確保了離散精度的一致性。
文獻(xiàn)[17]提出了一種基于定位動(dòng)態(tài)學(xué)(position based dynamics,PBD)的流體模擬方法,通過物體運(yùn)動(dòng)的限制方程來修正物體的位置,運(yùn)算效率高,模擬流體運(yùn)動(dòng)具有很真實(shí)的動(dòng)態(tài)感。文獻(xiàn)[18]通過在薄層表面適當(dāng)修改粒子間距來動(dòng)態(tài)模擬的表層粒子重采樣方法來模擬流體回落的過程,試驗(yàn)結(jié)果的實(shí)效性表明局部流體在適當(dāng)修正位置后可以更好地體現(xiàn)出模擬流體的真實(shí)感。文獻(xiàn)[19]結(jié)合SPH方法和PBD方法又提出了定位流體模擬(position based fluids,PBF)方法,通過粒子密度限制方程來校正位置,模型中人工添加的壓力項(xiàng)很好地避免了粒子小范圍飛濺或聚集的問題,模擬效果很好,適用于大規(guī)模的場(chǎng)景模擬。
文獻(xiàn)[20]在模擬橫向流體運(yùn)動(dòng)中引入了一種基于粒子幾何特征尺寸的自適應(yīng)采樣算法。該算法允許在幾何復(fù)雜的區(qū)域增加計(jì)算量來細(xì)化流體局部特征;通過粒子融合方式減少流體內(nèi)部的粒子數(shù)來加速模擬;根據(jù)模擬視角的重要程度調(diào)節(jié)采樣粒子密度來進(jìn)一步提升細(xì)節(jié)模擬效果。但這些優(yōu)點(diǎn)在粒子較少時(shí)效果并不明顯。文獻(xiàn)[21]在模擬水滴落入水杯的場(chǎng)景中,將水杯中模擬水的粒子分為大小不同的若干層,以提高模擬效率。該分層模擬的背景比較簡(jiǎn)單,相鄰層之間的粒子僅需粒子融合即可保持模型的穩(wěn)定。文獻(xiàn)[22]提出了一種統(tǒng)一的粒子框架來模擬固體、液體之間相互作用的運(yùn)動(dòng)情形,很好地解決了傳統(tǒng)粒子方法固液交互模擬中固體邊界難以處理的問題。
針對(duì)模擬不可壓縮流體往左右兩側(cè)潰壩的場(chǎng)景,本文將自適應(yīng)分層模型與現(xiàn)有的3種粒子方法相結(jié)合,得到3種改進(jìn)后的粒子方法。針對(duì)潰壩的液體采用分層技術(shù):液體表面的粒子為小粒子,保證了液體表面細(xì)節(jié)的模擬效果;下層的粒子為大粒子,這些大粒子的使用保證了流體內(nèi)部區(qū)域的整體結(jié)構(gòu),可以減少總體粒子數(shù),提高模型運(yùn)行速度。本文的改進(jìn)方法對(duì)原始方法的計(jì)算流程并未進(jìn)行改動(dòng),而是在保持原始方法計(jì)算流程的基礎(chǔ)上,在方法的初始處加入分層,而后下次迭代計(jì)算進(jìn)行之前,對(duì)流體粒子進(jìn)行自適應(yīng)分層。通過這種改進(jìn),本文有效地將3種經(jīng)典的粒子方法進(jìn)行改進(jìn),在保持表面細(xì)節(jié)的前提下,降低了原始方法的計(jì)算復(fù)雜度,改進(jìn)后的方法具有更好的表面細(xì)節(jié)。本文的模擬背景比文獻(xiàn)[21]復(fù)雜,而與文獻(xiàn)[20]相比,本文的改進(jìn)方法效率更高。
1.1 SPH方法
SPH方法的基本思想是將粒子的相關(guān)物理量用積分表述,然后通過核函數(shù)對(duì)其進(jìn)行離散,進(jìn)而對(duì)描述流體的微分方程進(jìn)行數(shù)值離散。
SPH方法的基本公式如下:
(1)
其中,Ai為需要求解的物理量,例如密度、壓強(qiáng)或黏性力等;h為支集半徑;粒子i的支集表示以粒子i為中心,h為半徑的圓形范圍;X={x1,x2,…,xn}中xj(j=1,2,…,n)表示粒子i支集半徑內(nèi)粒子的位置;mj為粒子j的質(zhì)量;W1(xi-xj,h)為一個(gè)核函數(shù)。在計(jì)算過程中用到的核函數(shù)W1、W2、W3參考文獻(xiàn)[7]。通過(1)式可以得到影響粒子運(yùn)動(dòng)的壓強(qiáng)力和黏性力,從而計(jì)算粒子的加速度,進(jìn)而計(jì)算出粒子的位置變化。
SPH方法的流程如圖1所示。
圖1 SPH方法的流程
由圖1可以看出,SPH方法整個(gè)過程都是顯式求解的,求解過程并不能完全保證質(zhì)量和動(dòng)量的守恒,因此其存在精度不高的缺點(diǎn),特別是自由邊界與介質(zhì)分界處的粒子,此區(qū)域的粒子能用來求解中心粒子的數(shù)目比流體內(nèi)部粒子更少,相比而言精度也就更差。此外,SPH方法的表面張力穩(wěn)定性較差,該方法本身對(duì)核函數(shù)的使用有較高的要求,比如要求緊支撐性,要求函數(shù)為高斯函數(shù)等。
1.2 MPS方法
MPS的基本思路與SPH方法類似,都是通過使用核函數(shù)來對(duì)粒子之間的相互作用進(jìn)行建模。不同于SPH方法,MPS方法不離散對(duì)流項(xiàng),其計(jì)算步驟分為顯式和隱式2個(gè)部分。顯式部分通過外力和邊界條件對(duì)粒子的速度和位置進(jìn)行直接修正;而隱式部分則是通過顯式修正之后造成的粒子數(shù)密度變化,得到一個(gè)包含壓力項(xiàng)的Poisson方程,求解方程得到壓力項(xiàng),再對(duì)粒子的速度和位置進(jìn)行第2次修正,這樣粒子的密度剛好不變,從而滿足不可壓縮條件。
在MPS方法中,為了描述粒子的疏密程度,定義粒子i處的粒子數(shù)密度為:
(2)
其中,h為支集半徑;粒子j表示以粒子i為中心,h為半徑的圓形范圍內(nèi)的粒子,xj(j=1,2,…,n)表示粒子i支集半徑內(nèi)粒子的位置;W(xi-xj,h)為一個(gè)核函數(shù)。粒子數(shù)密度實(shí)質(zhì)上是密度的一種離散表達(dá),不可壓縮性要求流體的密度不變,相當(dāng)于粒子數(shù)密度為常量,記為n0。
對(duì)描述流體運(yùn)動(dòng)的微分方程進(jìn)行分解,先對(duì)粒子施加黏性力和外力,得到粒子的臨時(shí)粒子數(shù)密度〈n*〉i以及臨時(shí)速度與位置,然后得到壓強(qiáng)的Poisson方程如下:
(3)
其中,Pn+1為下一時(shí)刻的壓強(qiáng)。求解(3)式,得到新的壓強(qiáng)后,對(duì)臨時(shí)速度與位置進(jìn)行修正。
MPS方法的流程如圖2所示。
圖2 MPS方法的流程
由圖2可以看出,MPS方法只有在求解壓強(qiáng)時(shí)才是隱式求解的,雖然隱式的方法保證了守恒,這樣得出的解精度較好,但是求解Poisson方程變成整個(gè)算法中最為耗時(shí)的過程。
1.3PBF方法
PBF算法的的主要思想是:首先將流體模擬中的不可壓縮性轉(zhuǎn)化為關(guān)于位置的限制方程;然后通過對(duì)限制方程進(jìn)行求解,得到新的位置;最后根據(jù)新的位置算出粒子的速度。該方法通過引入PBD的思想,先對(duì)粒子的位置應(yīng)用外力進(jìn)行第1次修正,然后找出粒子的相鄰粒子,類似于SPH方法,顯式地算出第2次修正的參數(shù);然后進(jìn)行第2次修正;最后使用新的位置來計(jì)算出粒子的速度。位置修正的方法如下:
(4)
其中,h為支集半徑;粒子i的支集表示以粒子i為中心,h為半徑的圓形范圍;X={x1,x2,…,xn}中xj(j=1,2,…,n)為粒子i支集半徑內(nèi)粒子的位置;mj為粒子j的質(zhì)量;W1(xi-xj,h)為一個(gè)核函數(shù);λ為位置修正參數(shù);scorr為加入的一個(gè)非負(fù)的人工壓力項(xiàng),用以避免粒子聚集成簇,其數(shù)值參數(shù)同文獻(xiàn)[19]。在計(jì)算過程中用到的核函數(shù)W1、W2、W3參考文獻(xiàn)[7]。
MPS方法的流程如圖3所示。
圖3 PBF方法的流程
PBF方法是一種高效的方法,與SPH方法類似,都是顯式求解的;但是PBF方法的計(jì)算結(jié)果特別是表面張力也會(huì)對(duì)使用的核函數(shù)存在依賴性。此外,針對(duì)加入的人工壓力項(xiàng)scorr,其設(shè)置一般是通過多次實(shí)驗(yàn),選取適當(dāng)值。
上述3種方法均有不同的優(yōu)缺點(diǎn),但在模擬大規(guī)模場(chǎng)景時(shí),這3種粒子方法都需要大量的粒子,計(jì)算量很大。因此,本文引入自適應(yīng)分層技術(shù)對(duì)上述3種方法進(jìn)行改進(jìn)。
本文粒子模型的改進(jìn)體現(xiàn)在粒子分層模型及其相適應(yīng)的粒子融合分離機(jī)制2個(gè)方面,粒子的屬性計(jì)算精度按照粒子速度大小自適應(yīng)變化。
2.1 粒子融合分離機(jī)制
文獻(xiàn)[20]在模擬流體和固體的碰撞場(chǎng)景時(shí),按照模擬的區(qū)域判定粒子是否需要融合或分離,標(biāo)記需要處理的粒子;然后根據(jù)粒子周圍其他粒子的位置分布判定是否滿足粒子融合或分離的條件。若滿足,則依照標(biāo)記處理;否則就更新粒子屬性,直至下一時(shí)刻。這種簡(jiǎn)單的雙重判定的方法使得“新粒子”的位置分布更合理,但是這種粒子融合分離機(jī)制在分離時(shí)要求粒子分布對(duì)稱,在融合時(shí)要求適當(dāng)?shù)目臻g分配在周圍粒子集中,這些比較難滿足,循環(huán)多步后可能會(huì)造成標(biāo)記粒子數(shù)量過多而影響粒子模型的穩(wěn)定性。
本文的粒子模型首先在初始時(shí)刻T=0時(shí)先在一個(gè)40×20×20的水槽左半邊平鋪4層大粒子,每個(gè)大粒子半徑為0.5,質(zhì)量為1;然后在大粒子的上方和右邊再分別放置6層和3列小粒子,小粒子的半徑為rl=0.25(rl是實(shí)驗(yàn)?zāi)M中最小的長(zhǎng)度單位,也是文中的支集半徑和搜索范圍的距離衡量單位),質(zhì)量為0.125。表層的小粒子可以提高模擬流體的表面細(xì)節(jié),內(nèi)部的大粒子支撐模擬流體的運(yùn)動(dòng)形態(tài),同時(shí)減少了模擬中需要的粒子數(shù),減小計(jì)算量。文中的粒子融合分離機(jī)制是通過計(jì)算目標(biāo)粒子支集半徑內(nèi)異類粒子和同類粒子之間的數(shù)量比值γ來判定目標(biāo)粒子是否仍處在目標(biāo)粒子區(qū)域,其計(jì)算公式如下:
(5)
其中,N為目標(biāo)粒子支集半徑內(nèi)不同粒子的數(shù)量;m為目標(biāo)粒子支集半徑內(nèi)不同粒子的質(zhì)量;X為目標(biāo)粒子的種類;B為小粒子;A為大粒子。若大粒子支集半徑內(nèi)小粒子和大粒子的數(shù)量比超過了給定值γ,則判定該大粒子進(jìn)入了小粒子區(qū)域,需要分離成2個(gè)小粒子。為了估算實(shí)驗(yàn)?zāi)M中γ的數(shù)值,本文虛擬一個(gè)球形結(jié)構(gòu),球體內(nèi)的上半部分均勻放置小粒子,下半部分放置大粒子。當(dāng)球體的半徑為大粒子的支集半徑時(shí),實(shí)驗(yàn)計(jì)算得到,大粒子和小粒子的比值為17/37,并以此作為大粒子分離時(shí)γ的臨界參考值;當(dāng)球體的半徑為小粒子的支集半徑時(shí),這個(gè)比值為7/17,以此作為小粒子融合時(shí)γ的臨界參考值。在估算出粒子分離在和融合的臨界參考值后,本文還在實(shí)驗(yàn)中分別對(duì)上述的臨界參考值進(jìn)行了微調(diào)以檢驗(yàn)粒子模型的穩(wěn)定性,測(cè)得的結(jié)果顯示大粒子分離時(shí)的穩(wěn)定區(qū)間為[0.4,0.56],小粒子融合時(shí)的穩(wěn)定區(qū)間為[0.38,0.48]。當(dāng)所選用γ的參考值不在穩(wěn)定區(qū)間內(nèi)時(shí),粒子模型在程序運(yùn)行時(shí)粒子的結(jié)構(gòu)層次混合,影響穩(wěn)定性,降低模擬效果。這種新的粒子融合分離機(jī)制適用絕大多數(shù)的分層粒子模型的流體模擬場(chǎng)景。
2.1.1 粒子融合
粒子融合判定條件如下:
(1) 小粒子進(jìn)入大粒子的區(qū)域,文中γ取值為0.42。
(2) 小粒子的支集半徑內(nèi)有其他同類粒子;若有多個(gè),則取距離最近的一個(gè)。
融合的大粒子屬性如下:
(1) 密度取粒子靜止密度ρ=ρ0。
(2) 質(zhì)量取2個(gè)較小質(zhì)量粒子之和M=2m。
(3) 速度按照動(dòng)量守恒定律
2mv=mv1+mv2?v=(v1+v2)/2。
(4) 新位置取2個(gè)質(zhì)量較小粒子融合前位置的中點(diǎn),即x=(x1+x2)/2。
簡(jiǎn)單的粒子融合二維圖如圖4所示。圖4a判定小粒子滿足融合條件,選取范圍內(nèi)最近粒子進(jìn)行融合;圖4b融合后的大粒子位置為融合前2個(gè)小粒子的中點(diǎn)。
圖4 粒子融合二維圖
2.1.2 粒子分離
粒子分離判定條件如下:
(1) 大粒子進(jìn)入小粒子區(qū)域,文中γ取0.5。
(2) 該大粒子影響范圍內(nèi)沒有其他同類粒子。
分離的2個(gè)小粒子屬性如下:
(1) 密度取粒子靜止密度ρ=ρ0。
(2) 質(zhì)量取較大質(zhì)量粒子的1/2,m=M/2。
(3) 速度按照運(yùn)動(dòng)學(xué)規(guī)律滿足動(dòng)量守恒和能量守恒
v1=v2=v。
(4) 2個(gè)新粒子的位置中點(diǎn)為分離前原粒子的位置,位置連線為原粒子速度方向的延長(zhǎng)線,2個(gè)粒子距離為2.8rl。
簡(jiǎn)單的粒子分離二維圖如圖5所示。圖5a判定大粒子滿足分離條件;圖5b分離成的2個(gè)小粒子位置在原大粒子的速度方向上,兩者距離的中點(diǎn)即是分離大粒子的原位置。
圖5 粒子分離二維圖
2.1.3 孤立粒子
若一個(gè)小粒子的支集半徑之內(nèi),全是比其大的粒子,則該粒子并不能進(jìn)行融合,因此這種粒子就形成了孤立粒子;同理,對(duì)于大粒子亦如此。為了簡(jiǎn)便,以下本文僅對(duì)孤立的小粒子進(jìn)行討論。
對(duì)于孤立的小粒子,其作用域內(nèi)實(shí)際上是較大的粒子存在的流體中部和下部區(qū)域,并且大粒子往往是動(dòng)能較小的粒子,此時(shí)可通過對(duì)孤立粒子加一個(gè)推力,該推力的方向?yàn)榱W拥倪\(yùn)動(dòng)速度方向,即
其中,λ的取值范圍為[0.1,0.3],本文取λ=0.1。反之,對(duì)于小粒子區(qū)域中的孤立大粒子,同樣給其加一個(gè)與速度方向相反的推力。
2.2 計(jì)算精度自適應(yīng)變化
因?yàn)榱黧w運(yùn)動(dòng)的局部連續(xù)性,模型中的粒子在速度較低時(shí),其周圍粒子的速度變化很小,其對(duì)周圍粒子的作用力很微弱。因此,當(dāng)粒子運(yùn)動(dòng)緩慢,通過降低消極粒子的支集半徑或者減少計(jì)算的迭代次數(shù)并不會(huì)對(duì)下一時(shí)刻的數(shù)值計(jì)算產(chǎn)生較大影響。但是,當(dāng)粒子運(yùn)動(dòng)速度加快時(shí),活躍粒子的運(yùn)動(dòng)對(duì)周圍粒子的位置開始敏感,因此擴(kuò)大它的支集半徑或者增加計(jì)算的迭代次數(shù)可以得到更精確的結(jié)果。本文根據(jù)粒子在時(shí)間間隔Δt內(nèi)的位移大小將粒子分為活躍粒子、普通粒子和消極粒子3種粒子。3種粒子占總粒子數(shù)的百分比分別為10%、30%和60%,并通過輸出實(shí)驗(yàn)數(shù)據(jù)確定時(shí)間間隔Δt內(nèi)粒子位移的分界點(diǎn)。具體數(shù)據(jù)及每種粒子的支集半徑迭代次數(shù)見表1所列。
表1 活躍粒子、普通粒子和消極粒子的分類及其支集半徑
本文分別將上述自適應(yīng)分層方法與SPH、MPS、PBF方法相結(jié)合,建立自適應(yīng)分層SPH方法、自適應(yīng)分層MPS方法和自適應(yīng)分層PBF方法。改進(jìn)后的方法流程如圖6~圖8所示。
圖6 自適應(yīng)分層SPH方法流程
圖7 自適應(yīng)分層MPS方法流程
圖8 自適應(yīng)分層PBF方法流程
本文的實(shí)驗(yàn)平臺(tái)為Windows 7系統(tǒng),程序開發(fā)的軟件選用Microsoft Visual Studio 2008,三維圖形的編程接口采用OpenGL。算法實(shí)現(xiàn)的硬件環(huán)境是Intel(R) Core(TM) i3-4130的CPU、4 G內(nèi)存的PC機(jī)。原始3種方法和改進(jìn)后方法的粒子模擬結(jié)果比較如圖9所示。
圖9 流體的粒子運(yùn)動(dòng)
在模擬中,原始方法和加入自適應(yīng)分層改進(jìn)后方法的幀率(幀率指1 s內(nèi)的幀數(shù))比較見表2所列。
表2 原始方法和本文方法的幀率比較
原始方法和改進(jìn)后方法的模擬結(jié)果經(jīng)表面重建及渲染后的比較如圖10所示。
圖10 渲染后流體運(yùn)動(dòng)
由表2可以看出,加入自適應(yīng)分層改進(jìn)之后的方法,其幀率的提高率至少提升了20%,其中MPS的提升最為明顯,提高率達(dá)到了65.24%,而另外2種方法都不超過50%。此外,由圖9及圖10可得:分層后的粒子模型可以在模擬同等場(chǎng)景的流體時(shí),減少約25%的粒子數(shù);計(jì)算效率較原始方法快24%~66%;模擬流體表面細(xì)節(jié)效果可以近似達(dá)到全部用一種粒子進(jìn)行計(jì)算得到的效果。
針對(duì)橫向流動(dòng)液體,本文提出使用嵌入自適應(yīng)分層的改進(jìn)的3種粒子方法,將粒子模型下層的大量粒子替換為體積更大的粒子,有效地減少了模擬中的粒子數(shù);再通過一種較為簡(jiǎn)單的粒子融合和分離機(jī)制,很好地保證了分層模型的穩(wěn)定性。文中改進(jìn)后的方法相比于原始方法,可以自適應(yīng)地調(diào)節(jié)粒子的計(jì)算精度,減少了消極粒子的計(jì)算量,提高了模擬運(yùn)算速度;通過對(duì)表層高速粒子更精確的計(jì)算,能夠更好地模擬水流的表面細(xì)節(jié)。改進(jìn)后的方法特別在計(jì)算效率上有較明顯的提高。
然而,由于本文模擬流體時(shí)的粒子數(shù)量偏少,分層模型在減少模擬粒子數(shù)量及對(duì)水流表面細(xì)節(jié)更精細(xì)地刻畫方面的優(yōu)勢(shì)并沒有完全體現(xiàn)出來。通過顯卡的并行計(jì)算的GPU加速,文中模型的粒子數(shù)可以達(dá)到百萬級(jí)時(shí),本文模型的優(yōu)勢(shì)將會(huì)愈加突出,渲染后的模擬效果將更加逼真。
[1] GINGOLD R A,MONAGHAN J J.Smoothed particle hydrodynamics:theorya and application to nonspherical stars[J].Monthly Notices of the Royal Astronomical Society,1977,181:375-389.
[2] MONAGHAN J J.An introduction to SPH[J].Computer Physics Communications,1988,48(1):89-96.
[3] MONAGHAN J J.Smoothed particle hydrodynamics[J].Annual Review of Astronomy and Astrophysics,1992,30:543-574.
[4] MONAGHAN J J.Simulating free surface flows with SPH [J].Journal of Computational Physics,1994,110(2):399-406.
[5] SWEGLE J W,HICKS D L,ATTAWAY S W.Smoothed particle hydrodynamics stability analysis[J].Journal of Computational Physics,1995,116(1):123-134.
[6] JOHNSON G R,STRYK R A,BEISSEL S R.SPH for high velocity impact computations[J].Computer Methods in Applied Mechanics & Engineering,1996,139(1/2/3/4):347-373.
[7] OWEN J M,VILLUMSEN J V,SHAPIRO P R.Adaptive smoothed particle hydrodynamics[J].Astrophysical Journal Supplement,1995,116(2):155-209.
[8] MONAGHAN J J.SPH without a tensile instability [J].Journal of Computational Physics,2000,159(2):290-311.
[10] 溫嬋娟,歐嘉蔚,賈金原.GPU通用計(jì)算平臺(tái)上的SPH流體模擬[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2010,22(3):406-411.
[11] 譚詩(shī)瀚,段茗,楊紅雨.非均勻粒子流體模擬[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(8):2760-2763.
[12] KOSHIZUKA S,OKA Y.Moving-particle semi-implicit method for fragmentation of incompressible fluid[J].Nuclear Science and Engineering,1996,123(3):421-434.
[13] YOON H Y,KOSHIZUKA S,OKA Y.A particle-gridless hybrid method for incompressible flows[J].International Journal for Numerical Methods in Fluids,1999,30(4):407-424.
[14] PREMOE S,TASDIZEN T,BIGLER J.Particle-based simulation of fluids[J].Computer Graphics Forum,2003,22(3):401-410.
[15] ATAIE-ASHTIANI B,FARHADI L.A stable moving-particle semi-implicit method for free surface flows[J].Fluid Dynamics Research,2006,38(4):241-256.
[16] 張帥,樓一民,邢菲,等.一種改進(jìn)的MPS粒子作用模型[J].計(jì)算力學(xué)學(xué)報(bào),2013,30(1):124-129.
[20] ADAMS B,PAULY M,KEISER R,et al.Adaptively sampled particle fluids[J].ACM Transactions on Graphics (TOG),2007,26(3):1-8.
[21] HONG W,HOUSE D H,KEYSER J.Adaptive particles for incompressible fluid simulation[J].The Visual Computer,2008,24(7):535-543.
(責(zé)任編輯 閆杏麗)
Adaptive layered position based fluids simulation model
LIANG Xinxin, ZHU Xiaolin, LIU Yangyang, YAN Zhiwei
(School of Mathematics, Hefei University of Technology, Hefei 230009, China)
This paper modifies three methods which are based on particles with the adaptive layered technique. Through dividing the fluid into two kinds of particles, the modified methods use fewer particles and get lower computation complexity than the original methods. In addition, the modified methods even have better surface detail for using small particles to cover the surface. By adding the adaptive layered model, the modified methods can get lower computation complexity but the detail of surface is unchanged or even better than that of the original ones.
fluid simulation; adaptivity; hierarchy
2015-12-16;
2016-03-22
國(guó)家自然科學(xué)基金資助項(xiàng)目(61272024)
梁欣鑫(1991-),男,廣西玉林人,合肥工業(yè)大學(xué)碩士生; 朱曉臨(1964-),男,安徽池州人,博士,合肥工業(yè)大學(xué)教授,碩士生導(dǎo)師.
10.3969/j.issn.1003-5060.2017.02.026
TP301.6
A
1003-5060(2017)02-0277-07