專利名稱:一種基于硬球模型的并行計(jì)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及離散粒子模擬并行計(jì)算,特別涉及到硬球模型的大規(guī)??蓴U(kuò)展并行計(jì)算。
背景技術(shù):
在顆粒流體系統(tǒng)中,普遍存在著流動(dòng)、傳遞、反應(yīng)等多種過程的耦合,如化工、能源等領(lǐng)域中涉及顆粒和流體的流態(tài)化系統(tǒng),使得系統(tǒng)呈現(xiàn)出顯著的非平衡性和多尺度結(jié)構(gòu)等。目前對(duì)這些系統(tǒng)的研究雖然已經(jīng)有一些成果,但總體而言,要嚴(yán)格描述這些系統(tǒng)的多尺度結(jié)構(gòu)還是十分困難的,究其原因還是其機(jī)理太過復(fù)雜,從而難以進(jìn)行深層次的研究。當(dāng)前,對(duì)于顆粒流體系統(tǒng)等領(lǐng)域的研究主要還用采取連續(xù)介質(zhì)模型,通過歐拉(Euler)坐標(biāo)系進(jìn)行直接的數(shù)值模擬,其尺度可追溯到連續(xù)介質(zhì)模型所能成立的最小尺度。但是此類方法在處理介觀結(jié)構(gòu)和稀薄氣體等方面存在很大困難,此時(shí)連續(xù)介質(zhì)假設(shè)已經(jīng)不再成立,需要采用離散的方法來探索和研究。從本質(zhì)上講,自然界中的物質(zhì)均是離散的,因此采用離散的方法對(duì)系統(tǒng)進(jìn)行研究也就是很自然的事情。離散模擬(Discrete simulation)的研究方法采用拉格朗日(Lagrange)坐標(biāo)系,著眼于構(gòu)成物質(zhì)體系的質(zhì)點(diǎn),將系統(tǒng)離散為經(jīng)典力學(xué)下的離散質(zhì)點(diǎn),直接描述系統(tǒng)的底層物理結(jié)構(gòu)和過程。此類方法不依賴于宏觀的納維葉-斯托克斯(Navier-Stokes)方程等唯象描述,深入而可靠地反映了系統(tǒng)的基本機(jī)理,被越來越多地應(yīng)用到兩相體系的模擬研究中。一般來說,處理離散粒子間的相互作用及其變化的方法主要有兩大類軟球(SoftSphere)模型和硬球(Hard Sphere)模型(二維模擬中則稱之為軟碟Soft Disk和硬碟Hard Disk)。軟球模型通過彈性、阻尼以及滑移的力學(xué)機(jī)制考慮顆粒碰撞時(shí)的相互作用,力的計(jì)算和系統(tǒng)的推演,具有很好的并行性。而硬球模型則認(rèn)為粒子間的作用是瞬時(shí)的二元碰撞,碰撞后粒子的運(yùn)動(dòng)速度按經(jīng)典力學(xué)計(jì)算,特別適合氣體尤其是稀薄氣體流動(dòng)的模擬計(jì)算,從而得到了廣泛的應(yīng)用。由于研究體系的不斷增大,模擬的粒子數(shù)目也越來越多。為了解決應(yīng)對(duì)巨大的計(jì)算量,需要進(jìn)行并行計(jì)算。不過由于硬球模型采用的是事件驅(qū)動(dòng)算法(Event-drivenalgorithm),雖然單機(jī)的計(jì)算效率相當(dāng)優(yōu)越,但是其內(nèi)在性質(zhì)使之難以實(shí)現(xiàn)真正意義上的大規(guī)模并行計(jì)算。目前雖然存在硬球模型事驅(qū)算法的并行方案(參見參考文獻(xiàn)I =MarinM.,Computer Physics Communications, 102 (1-3), 81-96,1997 ;參考文獻(xiàn) 2 Miller S.,Luding S. , Journal of Computational Physics, 193 (I), 306-316,2004),并初步解決了此問題。但是當(dāng)研究的規(guī)模變大以后,算法中的因果錯(cuò)誤出現(xiàn)的幾率會(huì)越來越大,程序也將會(huì)頻繁地進(jìn)行回調(diào),從而降低了算法的效率,并且使得算法并不能真正意義上實(shí)現(xiàn)大規(guī)??蓴U(kuò)展并行計(jì)算。不過基于硬球模型的擬顆粒模型(Pseudo-particle Modeling,PPM)(參見參考文獻(xiàn) 3 Ge ff. , Li J. H. Pseudo-Particle Approach to Hydrodynamics of Particle-FluidSystems. In Proceedings of the Fifth International Conference on CirculatingFluidized Beds, Beijing, Science Press, 1996),則不存在并行的問題。擬顆粒模型將氣體處理為大量的硬球粒子,按時(shí)間驅(qū)動(dòng)的方式推演。擬顆粒方法結(jié)合了分子動(dòng)力學(xué)中硬球模型模擬和直接蒙特卡洛模擬兩種模擬方法的優(yōu)點(diǎn),因此具有較好的微觀表現(xiàn)カ和計(jì)算效率,且基于時(shí)間驅(qū)動(dòng)的本質(zhì),使得擬顆粒模型具有良好的并行性。但是,由于擬顆粒模型在模擬過程中每步都要判斷粒子之間碰撞關(guān)系,對(duì)于氣體尤其是稀薄氣體這種碰撞概率比較低的體系則浪費(fèi)了大量的計(jì)算機(jī)時(shí),從而造成模擬的效率過于低下。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有事件驅(qū)動(dòng)算法難以并行以及現(xiàn)有硬球時(shí)間驅(qū)動(dòng)算法計(jì)算效率低下的不足,針對(duì)采用硬球模型的離散粒子系統(tǒng),提供ー種基于時(shí)間驅(qū)動(dòng)算法和事件驅(qū)動(dòng)算法耦合模式的大規(guī)??蓴U(kuò)展并行算法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于硬球模型的并行計(jì)算方法,該方法包括以下步驟步驟I)將所要模擬的粒子系統(tǒng)信息讀入并行計(jì)算系統(tǒng)中;步驟2)將所要模擬的系統(tǒng)劃分為多個(gè)子區(qū)域,同時(shí)將所述子區(qū)域劃分為多個(gè)元胞網(wǎng)格并且在所述子區(qū)域外層建立子區(qū)域的虛擬區(qū)元胞網(wǎng)格,所述子區(qū)域元胞網(wǎng)格分為邊界區(qū)元胞網(wǎng)格和內(nèi)部區(qū)元胞網(wǎng)格;其中,所述內(nèi)部區(qū)元胞網(wǎng)格對(duì)應(yīng)事件驅(qū)動(dòng)區(qū)域,所述邊界區(qū)元胞網(wǎng)格和虛擬區(qū)元胞網(wǎng)格對(duì)應(yīng)時(shí)間驅(qū)動(dòng)區(qū)域;步驟3)建立所要模擬的系統(tǒng)中粒子與元胞網(wǎng)格的映射關(guān)系;步驟4)在給定的時(shí)間驅(qū)動(dòng)時(shí)間步中,更新所述事件驅(qū)動(dòng)區(qū)域和時(shí)間驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)。其中,可以重復(fù)執(zhí)行步驟4)直至系統(tǒng)達(dá)到穩(wěn)定狀態(tài)或者滿足用戶要求,然后將模擬結(jié)果從并行計(jì)算系統(tǒng)中輸出。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟2)中每個(gè)子區(qū)域分別對(duì)應(yīng)所述并行計(jì)算系統(tǒng)中的ー個(gè)進(jìn)程;所述虛擬區(qū)元胞網(wǎng)格和邊界區(qū)元胞網(wǎng)格的層數(shù)均不少于2層,并且虛擬區(qū)元胞網(wǎng)格的層數(shù)不超過邊界區(qū)元胞網(wǎng)格的層數(shù)。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟3)中建立所要模擬系統(tǒng)中粒子與元胞網(wǎng)格的映射關(guān)系是指根據(jù)粒子的位置將粒子以鏈表方式分布至步驟I)中所述子區(qū)域元胞網(wǎng)格中。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟4)中所述給定的時(shí)間驅(qū)動(dòng)時(shí)間步At的大小應(yīng)滿足I v「v21 At ^ min (d/2,2)其中,VpV2是兩個(gè)粒子的速度,I12是粒子之間的距離,d是粒子的平均直徑,r:和r2是粒子的半徑。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟4)中更新所述事件驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)包括以下步驟步驟4-1)建立所述子區(qū)域內(nèi)部區(qū)元胞網(wǎng)格的事件網(wǎng)格;步驟4-2)將所述子區(qū)域中每個(gè)事件網(wǎng)格中的粒子的事件按發(fā)生的先后順序存儲(chǔ)在事件網(wǎng)格的一個(gè)鏈表中;步驟4-3)找到所述子區(qū)域內(nèi)部區(qū)元胞網(wǎng)格所對(duì)應(yīng)的所有事件網(wǎng)格中最優(yōu)先發(fā)生事件;步驟4-4)如果所述最優(yōu)先發(fā)生事件為穿越元胞網(wǎng)格事件則更新其時(shí)間和位置,并更新粒子所處元胞網(wǎng)格所在的事件網(wǎng)格的事件鏈表;同時(shí)分析粒子新位置所處區(qū)域,如果粒子處于時(shí)驅(qū)區(qū)域則更新粒子時(shí)間至?xí)r驅(qū)時(shí)間步并繼續(xù)更新粒子的位置,如粒子的最新位置在事驅(qū)區(qū)域,則更新該最新位置所在元胞網(wǎng)格的事件網(wǎng)格的事件鏈表;步驟4-5)如果所述最優(yōu)先發(fā) 生事件為碰撞事件則更新碰撞粒子對(duì)的時(shí)間、位置和速度;分析碰撞粒子對(duì)新位置所處元胞網(wǎng)格,并更新粒子鏈表發(fā)生更改的元胞網(wǎng)格所處事件網(wǎng)格中的事件鏈表;步驟4-6)重復(fù)執(zhí)行步驟4-3至4-5,直到處理完給定時(shí)間步內(nèi)事驅(qū)區(qū)域所有事件。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟4)中更新所述時(shí)間驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)包括以下步驟步驟4-7)更新所述邊界區(qū)元胞網(wǎng)格中的粒子的位置信息,并完成粒子的進(jìn)出進(jìn)程操作;步驟4-8)、處理所述邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞,以及邊界區(qū)元胞網(wǎng)格中粒子和內(nèi)部區(qū)元胞網(wǎng)格中粒子的碰撞,并更新該粒子和被碰撞粒子的速度;步驟4-9)、處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與相鄰子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞,并更新碰撞粒子對(duì)的速度。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,在所述步驟4-7)中更新粒子的位置信息包括以下步驟步驟4-7-1)、如果粒子的位置仍然處于原先網(wǎng)格,則粒子所屬網(wǎng)格信息不變;步驟4-7-2)、如果粒子的位置不在原先網(wǎng)格,但粒子的新位置仍處于所述邊界區(qū)和虛擬區(qū)元胞網(wǎng)格中,則將粒子移至新位置所處網(wǎng)格中;如果粒子的位置不在原先網(wǎng)格,且粒子的新位置處于內(nèi)部區(qū)元胞網(wǎng)格中,則將粒子移至新位置所處網(wǎng)格中,并更新新位置所處網(wǎng)格所在的事件網(wǎng)格的事件列表;步驟4-7-3)、將虛擬區(qū)元胞網(wǎng)格中的粒子通信至相鄰子區(qū)域,并從虛擬區(qū)元胞網(wǎng)格中刪除粒子的信息。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,所述步驟4-9)是依次按以下順序處理處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與位于其它子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞的首先處理具有最少相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格,接著處理具有次少相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格,直到處理完具有最多相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格為止。根據(jù)本發(fā)明實(shí)施例的并行計(jì)算方法,所述步驟4-9)處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與相鄰子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞包括以下步驟a.將本子區(qū)域與高位子區(qū)域相鄰的邊界區(qū)元胞網(wǎng)格粒子的信息傳遞至所述高位子區(qū)域的虛擬區(qū)元胞網(wǎng)格中;b.本子區(qū)域?qū)?yīng)的進(jìn)程計(jì)算與低位子區(qū)域相鄰的邊界區(qū)元胞網(wǎng)格中粒子和虛擬區(qū)元胞網(wǎng)格中粒子之間的碰撞,并更新碰撞粒子的狀態(tài);c.將已碰撞且更新狀態(tài)后的虛擬區(qū)的粒子信息反饋至低位子區(qū)域邊界區(qū)對(duì)應(yīng)的元胞網(wǎng)格之中,并從虛擬區(qū)中刪除粒子的信息;其中,所述高位子區(qū)域與低位子區(qū)域是按照步驟2)中所劃分的子區(qū)域的位置而確定的。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于耦合了時(shí)間驅(qū)動(dòng)算法和事件驅(qū)動(dòng)算法各自的優(yōu)點(diǎn),利用時(shí)間驅(qū)動(dòng)算法易于并行的特點(diǎn),克服了事件驅(qū)動(dòng)算法固有的難以并行的缺陷,解決了時(shí)驅(qū)算法計(jì)算效率低下的問題。并利用并行機(jī)群系統(tǒng)對(duì)大量數(shù)據(jù)進(jìn)行并行處理,力口快了整體的運(yùn)算效率,擴(kuò)大了計(jì)算規(guī)模。另外,還提出用于硬球模型高維系統(tǒng)高維分割情形下的通信方式,解決了一般通信方式中由于硬球碰撞時(shí)序不一致、而導(dǎo)致系統(tǒng)能量在碰撞處理過程中不守恒的情形。
圖I為根據(jù)本發(fā)明實(shí)施例的區(qū)域分解示意圖;
圖2為根據(jù)本發(fā)明實(shí)施例的子區(qū)域內(nèi)部區(qū)和邊界區(qū)元胞網(wǎng)格劃分以及擴(kuò)展的虛擬區(qū)網(wǎng)格劃分示意圖;圖3為根據(jù)本發(fā)明實(shí)施例的粒子在元胞網(wǎng)格中的存儲(chǔ)以及粒子穿越網(wǎng)格示意圖;圖4為根據(jù)本發(fā)明實(shí)施例的對(duì)于搜索某一進(jìn)程的事件驅(qū)動(dòng)區(qū)域中最優(yōu)先發(fā)生事件及其更新的二叉樹法示意圖;圖5為在鄰居進(jìn)程間所采用的Shift通信模式的一個(gè)實(shí)施例的示意圖;圖6為根據(jù)本發(fā)明實(shí)施例的二維模擬系統(tǒng)二維分割邊界區(qū)域第一次通信示意圖;圖7為根據(jù)本發(fā)明實(shí)施例的二維模擬系統(tǒng)二維分割邊界區(qū)域第二次通信示意圖;圖8為根據(jù)本發(fā)明實(shí)施例的三維模擬系統(tǒng)三維分割邊界區(qū)域的通信示意圖;圖9是描述基于硬球模型的大規(guī)模并行計(jì)算方法的一個(gè)實(shí)施例的流程圖;圖10為根據(jù)本發(fā)明實(shí)施例的基于硬球模型的大規(guī)模并行計(jì)算方法的計(jì)算效率比較圖;圖11為根據(jù)本發(fā)明實(shí)施例的基于硬球模型的大規(guī)模并行計(jì)算方法的計(jì)算過程比較圖。
具體實(shí)施例方式為了使本發(fā)明的目的,技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖通過具體實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明的實(shí)施例中,在模擬稀薄氣體粒子系統(tǒng)時(shí),以CPU為計(jì)算部件的計(jì)算機(jī)系統(tǒng)為基礎(chǔ)實(shí)現(xiàn)模擬過程。模擬中,粒子的模型為硬球模型。雖然硬球模型事驅(qū)算法單機(jī)的效率已經(jīng)很高,但是為了更好地對(duì)大量粒子的模擬,在本發(fā)明的實(shí)施例中,采用并行計(jì)算系統(tǒng)實(shí)現(xiàn)對(duì)大規(guī)模硬球粒子系統(tǒng)的模擬。所述的并行計(jì)算系統(tǒng)由多個(gè)計(jì)算節(jié)點(diǎn)組成,在每個(gè)計(jì)算節(jié)點(diǎn)上都采用多個(gè)多核處理器,不同計(jì)算節(jié)點(diǎn)間通過高速網(wǎng)絡(luò)連接。在本發(fā)明的一個(gè)實(shí)施例中,系統(tǒng)的計(jì)算節(jié)點(diǎn)具有如下配置每個(gè)節(jié)點(diǎn)有兩個(gè)型號(hào)為Xeon 5430的CPU,每個(gè)CPU有四個(gè)計(jì)算核心,每個(gè)節(jié)點(diǎn)有容量為16GB大小的DDR2-667內(nèi)存,不同節(jié)點(diǎn)間通過InfiniBand網(wǎng)絡(luò)連接起來。在本實(shí)例中,采用了 2個(gè)上述節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)使用了 8個(gè)進(jìn)程,共計(jì)16個(gè)進(jìn)程。本領(lǐng)域的普通技術(shù)人員應(yīng)該理解此處并行系統(tǒng)的配置僅起示意說明的作用,在其他實(shí)施例中可以采用現(xiàn)有的各種并行計(jì)算系統(tǒng)的硬件配置。在本發(fā)明的實(shí)施例中所涉及的硬球作用模型和事件驅(qū)動(dòng)算法是現(xiàn)有技術(shù),為了方便理解以及下文中說明的需要,首先對(duì)硬球作用模型和事件驅(qū)動(dòng)算法加以說明。硬球模型是計(jì)算兩個(gè)粒子之間的作用勢(shì)的模型,其表達(dá)式如下
權(quán)利要求
1.一種基于硬球模型的并行計(jì)算方法,所述方法包括以下步驟 步驟I)將所要模擬的粒子系統(tǒng)信息讀入并行計(jì)算系統(tǒng)中; 步驟2)將所要模擬的系統(tǒng)劃分為多個(gè)子區(qū)域,同時(shí)將所述子區(qū)域劃分為多個(gè)元胞網(wǎng)格并且在所述子區(qū)域外層建立子區(qū)域的虛擬區(qū)元胞網(wǎng)格,所述子區(qū)域元胞網(wǎng)格分為邊界區(qū)元胞網(wǎng)格和內(nèi)部區(qū)元胞網(wǎng)格;其中,所述內(nèi)部區(qū)元胞網(wǎng)格對(duì)應(yīng)事件驅(qū)動(dòng)區(qū)域,所述邊界區(qū)元胞網(wǎng)格和虛擬區(qū)元胞網(wǎng)格對(duì)應(yīng)時(shí)間驅(qū)動(dòng)區(qū)域; 步驟3)建立所要模擬的系統(tǒng)中粒子與元胞網(wǎng)格的映射關(guān)系; 步驟4)在給定的時(shí)間驅(qū)動(dòng)時(shí)間步中,更新所述事件驅(qū)動(dòng)區(qū)域和時(shí)間驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)。
2.根據(jù)權(quán)利要求書I所述的并行計(jì)算方法,其特征在于,在所述步驟2)中,每個(gè)子區(qū)域分別對(duì)應(yīng)所述并行計(jì)算系統(tǒng)中的ー個(gè)進(jìn)程。
3.根據(jù)權(quán)利要求書I所述的并行計(jì)算方法,其特征在于,在所述步驟2)中,所述虛擬區(qū)元胞網(wǎng)格和邊界區(qū)元胞網(wǎng)格的層數(shù)均不少于2層,并且虛擬區(qū)元胞網(wǎng)格的層數(shù)不超過邊界區(qū)元胞網(wǎng)格的層數(shù)。
4.根據(jù)權(quán)利要求書I所述的并行計(jì)算方法,其特征在于所述步驟3)中建立所要模擬系統(tǒng)中粒子與元胞網(wǎng)格的映射關(guān)系包括根據(jù)粒子的位置將粒子以鏈表方式分布至步驟I)中所述子區(qū)域元胞網(wǎng)格中。
5.根據(jù)權(quán)利要求書I所述的并行計(jì)算方法,其特征在于,所述步驟4)中所述給定的時(shí)間驅(qū)動(dòng)時(shí)間步At的大小應(yīng)滿足 I V1-Vo I At ≤mirUd/2, 其中,Vl、V2是兩個(gè)粒子的速度,I12是粒子之間的距離,d是粒子的平均直徑,T1和r2是粒子的半徑。
6.根據(jù)權(quán)利要求書5所述的并行計(jì)算方法,其特征在于所述步驟4)中更新所述事件驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)包括以下步驟 步驟4-1)建立所述子區(qū)域內(nèi)部區(qū)元胞網(wǎng)格的事件網(wǎng)格; 步驟4-2)將所述子區(qū)域中每個(gè)事件網(wǎng)格中的粒子的事件按發(fā)生的先后順序存儲(chǔ)在事件網(wǎng)格的一個(gè)鏈表中; 步驟4-3)找到所述子區(qū)域內(nèi)部區(qū)元胞網(wǎng)格所對(duì)應(yīng)的所有事件網(wǎng)格中最優(yōu)先發(fā)生事件; 步驟4-4)如果所述最優(yōu)先發(fā)生事件為穿越元胞網(wǎng)格事件則更新其時(shí)間和位置,并更新粒子所處元胞網(wǎng)格所在的事件網(wǎng)格的事件鏈表;同時(shí)分析粒子新位置所處區(qū)域,如果粒子處于時(shí)驅(qū)區(qū)域則更新粒子時(shí)間至?xí)r驅(qū)時(shí)間步并繼續(xù)更新粒子的位置,如粒子的最新位置在事驅(qū)區(qū)域,則更新該最新位置所在元胞網(wǎng)格的事件網(wǎng)格的事件鏈表; 步驟4-5)如果所述最優(yōu)先發(fā)生事件為碰撞事件則更新碰撞粒子對(duì)的時(shí)間、位置和速度;分析碰撞粒子對(duì)新位置所處元胞網(wǎng)格,并更新粒子鏈表發(fā)生更改的元胞網(wǎng)格所處事件網(wǎng)格中的事件鏈表; 步驟4-6)重復(fù)執(zhí)行步驟4-3至4-5,直到處理完給定時(shí)間步內(nèi)事驅(qū)區(qū)域所有事件。
7.根據(jù)權(quán)利要求書5所述的并行計(jì)算方法,其特征在于所述步驟4)中更新所述時(shí)間驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)包括以下步驟步驟4-7)更新所述邊界區(qū)元胞網(wǎng)格中的粒子的位置信息; 步驟4-8)、處理所述邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞,以及邊界區(qū)元胞網(wǎng)格中粒子和內(nèi)部區(qū)兀胞網(wǎng)格中粒子的碰撞,并更新該粒子和被碰撞粒子的速度; 步驟4-9)、處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與相鄰子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞,并更新碰撞粒子對(duì)的速度。
8.根據(jù)權(quán)利要求書7所述的并行計(jì)算方法,其特征在于,所述步驟4-7)中更新粒子的位置信息包括以下步驟 步驟4-7-1)、如果粒子的位置仍然處于原先的元胞網(wǎng)格,則粒子所屬網(wǎng)格信息不變; 步驟4-7-2)、如果粒子的位置不在原先的元胞網(wǎng)格,但粒子的新位置仍處于所述邊界區(qū)和虛擬區(qū)元胞網(wǎng)格中,則將粒子移至新位置所處的元胞網(wǎng)格中;如果粒子的位置不在原先的元胞網(wǎng)格,且粒子的新位置處于內(nèi)部區(qū)元胞網(wǎng)格中,則將粒子移至新位置所處的元胞網(wǎng)格中,并更新新位置所處的元胞網(wǎng)格所在的事件網(wǎng)格的事件列表; 步驟4-7-3)、將虛擬區(qū)元胞網(wǎng)格中的粒子通信至相鄰子區(qū)域,并從虛擬區(qū)元胞網(wǎng)格中刪除粒子的信息。
9.根據(jù)權(quán)利要求書7所述的并行計(jì)算方法,其特征在于,所述步驟4-9)是依次按以下順序處理處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與位于其它子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞的首先處理具有最少相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格,接著處理具有次少相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格,直到處理完具有最多相鄰子區(qū)域的邊界區(qū)元胞網(wǎng)格為止。
10.根據(jù)權(quán)利要求書9所述的并行計(jì)算方法,其特征在于,所述步驟4-9)處理本子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子與相鄰子區(qū)域邊界區(qū)元胞網(wǎng)格中粒子之間的碰撞包括以下步驟 a.將本子區(qū)域的與高位子區(qū)域相鄰的邊界區(qū)元胞網(wǎng)格粒子的信息傳遞至所述高位子區(qū)域的虛擬區(qū)元胞網(wǎng)格中; b.本子區(qū)域?qū)?yīng)的進(jìn)程計(jì)算與低位子區(qū)域相鄰的邊界區(qū)元胞網(wǎng)格中粒子和虛擬區(qū)元胞網(wǎng)格中粒子之間的碰撞,并更新碰撞粒子的狀態(tài); c.將已碰撞且更新狀態(tài)后的虛擬區(qū)的粒子信息反饋至對(duì)應(yīng)的低位子區(qū)域邊界區(qū)元胞網(wǎng)格之中,并從虛擬區(qū)中刪除粒子的信息; 其中,所述高位子區(qū)域與低位子區(qū)域是按照步驟2)中所劃分的子區(qū)域的位置而確定的。
11.根據(jù)權(quán)利要求I所述的并行計(jì)算方法,其中可以重復(fù)執(zhí)行步驟4)直至系統(tǒng)達(dá)到穩(wěn)定狀態(tài)或者滿足用戶要求。
全文摘要
本發(fā)明提供一種基于硬球模型大規(guī)模并行計(jì)算的方法,該方法將所要模擬的系統(tǒng)劃分為多個(gè)子區(qū)域,同時(shí)將所述子區(qū)域劃分為多個(gè)內(nèi)部區(qū)元胞網(wǎng)格和邊界區(qū)元胞網(wǎng)格,并且在所述子區(qū)域外層建立子區(qū)域的虛擬區(qū)元胞網(wǎng)格;所述內(nèi)部區(qū)元胞網(wǎng)格對(duì)應(yīng)事件驅(qū)動(dòng)區(qū)域,所述邊界區(qū)元胞網(wǎng)格和虛擬區(qū)元胞網(wǎng)格對(duì)應(yīng)時(shí)間驅(qū)動(dòng)區(qū)域;在給定的時(shí)間驅(qū)動(dòng)時(shí)間步中,更新所述事件驅(qū)動(dòng)區(qū)域和時(shí)間驅(qū)動(dòng)區(qū)域內(nèi)粒子的狀態(tài)。本發(fā)明克服了硬球模型事件驅(qū)動(dòng)算法難以并行且現(xiàn)有并行算法由于反復(fù)回調(diào)而導(dǎo)致的低效困難,同時(shí)也解決了時(shí)驅(qū)算法由于計(jì)算量大而造成的計(jì)算效率低下問題,在計(jì)算效率和并行擴(kuò)展性上有了很大的提高。
文檔編號(hào)G06N3/00GK102760116SQ20111011005
公開日2012年10月31日 申請(qǐng)日期2011年4月29日 優(yōu)先權(quán)日2011年4月29日
發(fā)明者李靜海, 沈國(guó)飛, 葛蔚 申請(qǐng)人:中國(guó)科學(xué)院過程工程研究所