欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于流體粒子建??諝馀莸倪\動的方法和設(shè)備與流程

文檔序號:12612332閱讀:264來源:國知局
基于流體粒子建模空氣泡的運動的方法和設(shè)備與流程

技術(shù)領(lǐng)域

下面的描述涉及一種用于基于流體粒子建??諝馀莸倪\動的方法和設(shè)備。



背景技術(shù):

在計算機圖形(CG)領(lǐng)域中(例如,視覺效果(VFX)領(lǐng)域),空氣粒子可用于建模流體流動中的空氣泡。

為了使用空氣粒子建模流體中的空氣泡,與空氣泡的體積對應(yīng)的空間需要使用空氣粒子填充。因此,大量的空氣粒子需要被處理以建模大型的空氣泡,并且確定空氣粒子的最初播種位置和消除位置可能不容易。



技術(shù)實現(xiàn)要素:

提供本發(fā)明內(nèi)容從而以簡化的形式介紹將在下面的具體實施方式中進一步描述的構(gòu)思的選擇。本發(fā)明內(nèi)容不意在標識所要求保護的主題的關(guān)鍵特征或必要特征,也不意在作為確定要求保護的主題的范圍的幫助而被使用。

在一個總體方面中,一種流體粒子建模方法,包括:基于流體粒子的位置確定氣泡單元;定義由氣泡單元構(gòu)成的氣泡;基于氣泡的體積的改變計算氣泡的壓力;基于氣泡的壓力更新流體粒子的位置。

確定氣泡單元的步驟可包括:將基于網(wǎng)格單元的模型空間中的網(wǎng)格單元之中的不包括任何流體粒子的網(wǎng)格單元確定為氣泡單元。

定義氣泡的步驟可包括:基于氣泡單元之間的連接關(guān)系確定氣泡;將標識符(ID)分配給氣泡。

確定氣泡的步驟可包括:使用泛洪填充標記算法確定氣泡單元之間的連接關(guān)系;將氣泡單元之中的連接的氣泡單元確定為氣泡。

流體粒子建模方法還可包括:基于與氣泡的位置相鄰的流體單元的信息,確定氣泡的最初的體積和最初的壓力;流體單元可包括所述流體粒子中的一些流體粒子。

計算氣泡的壓力的步驟可包括:基于氣泡的先前的體積和氣泡的當前的體積計算氣泡的壓力。

計算氣泡的壓力的步驟可包括:使用氣體狀態(tài)方程計算有效防止氣泡消失的氣泡的壓力。

流體粒子建模方法還可包括:通過在不同的建模時間步長中執(zhí)行ID匹配,確定氣泡的結(jié)構(gòu)改變是否已發(fā)生;響應(yīng)于確定的結(jié)果是結(jié)構(gòu)改變已發(fā)生,將新的ID分配給由于結(jié)構(gòu)改變而造成的一個或多個氣泡。

確定氣泡的結(jié)構(gòu)改變是否已發(fā)生的步驟可包括:使用最佳重疊算法在不同的建模時間步長中執(zhí)行ID匹配。

氣泡的結(jié)構(gòu)改變可以是氣泡破裂為多個氣泡和氣泡與另一氣泡合并之中的任意一個。

更新流體粒子的位置的步驟可包括:使用光滑粒子流體動力學(SPH)算法建模流體粒子。

更新流體粒子的位置的步驟可包括:將作為外力的氣泡的壓力施加到流體粒子之中的與氣泡相鄰的流體粒子;基于施加到與氣泡相鄰的流體粒子的外力,確定流體粒子的更新的位置。

計算氣泡的壓力的步驟可包括:重新布置氣泡中的壓力分布以建模氣泡的浮力。

重新布置氣泡中的壓力分布的步驟可包括:基于構(gòu)成氣泡的氣泡單元的位置,逐步改變氣泡中的壓力分布。

重新布置氣泡中的壓力分布的步驟可包括:增加構(gòu)成氣泡的氣泡單元之中的在氣泡中處于較高位置的氣泡單元的壓力;減少構(gòu)成氣泡的氣泡單元之中的在氣泡中處于較低位置的氣泡單元的壓力。

在另一總體方面中,一種非暫時性計算機可讀存儲介質(zhì),存儲當由處理器執(zhí)行時導致處理器執(zhí)行如權(quán)利要求1所述的方法的指令。

在另一總體方面中,一種流體粒子建模設(shè)備,包括:處理器,被配置為基于流體粒子的位置確定氣泡單元,定義由氣泡單元構(gòu)成的氣泡,基于氣泡的體積的改變計算氣泡的壓力,基于氣泡的壓力更新流體粒子的位置;存儲器,被配置為存儲在基于網(wǎng)格單元的模型空間中包括流體粒子的流體單元的信息和構(gòu)成氣泡的氣泡單元的信息。

處理器還可被配置為:將基于網(wǎng)格單元的模型空間中的網(wǎng)格單元之中的不包括任何流體粒子的網(wǎng)格單元確定為氣泡單元。

處理器還可被配置為:基于氣泡單元之間的連接關(guān)系確定氣泡,并將標識符(ID)分配給氣泡。

處理器還可被配置為:基于與氣泡的位置相鄰的流體單元的信息,確定氣泡的最初的體積和氣泡的最初的壓力;流體單元可包括所述流體粒子中的一些流體粒子。

處理器還可被配置為:基于氣泡的先前的體積和氣泡的當前的體積計算氣泡的壓力。

處理器還可被配置為:使用氣體狀態(tài)方程計算有效防止氣泡消失的氣泡的壓力。

處理器還可被配置為:通過在不同的建模時間步長中執(zhí)行ID匹配,確定氣泡的結(jié)構(gòu)改變是否已發(fā)生,響應(yīng)于確定的結(jié)果是結(jié)構(gòu)改變已發(fā)生,將新的ID分配給由于結(jié)構(gòu)改變而造成的一個或多個氣泡。

氣泡的結(jié)構(gòu)改變可以是氣泡破裂為多個氣泡和氣泡與另一氣泡合并之中的任意一個。

處理器還可被配置為:通過使用光滑粒子流體動力學(SPH)算法建模流體粒子來更新流體粒子的位置。

處理器還可被配置為:將作為外力的氣泡的壓力施加到與流體粒子之中的氣泡相鄰的流體粒子,并基于施加到與氣泡相鄰的流體粒子的外力,確定流體粒子的更新的位置。

處理器還可被配置為:重新布置氣泡中的壓力分布以建模氣泡的浮力。

處理器還可被配置為:基于構(gòu)成氣泡的氣泡單元的位置,逐步改變氣泡中的壓力分布。

處理器還可被配置為:增加構(gòu)成氣泡的氣泡單元之中的在氣泡中處于較高位置的氣泡單元的壓力,減少構(gòu)成氣泡的氣泡單元之中的在氣泡中處于較低位置的氣泡單元的壓力。

在另一總體方面中,一種流體建模方法,包括:使用粒子建模方法通過流體粒子建模流體;使用非粒子建模方法在流體中建模氣泡;在建模處理中隨時間流逝追蹤氣泡的體積;基于氣泡的當前的體積計算氣泡的當前的壓力;將氣泡的當前的壓力施加到流體粒子之中的與氣泡相鄰的流體粒子。

粒子建模方法可包括:在基于網(wǎng)格單元的模型空間中建模網(wǎng)格單元中的流體粒子;非粒子建模方法可包括:通過基于網(wǎng)格單元的模型空間中的不包括任何流體粒子的連續(xù)的網(wǎng)格單元來建模氣泡。

所述追蹤氣泡的步驟可包括:在建模處理的開始將氣泡定義為基于網(wǎng)格單元的模型空間中的不包括任何流體粒子的連續(xù)的網(wǎng)格單元;在建模處理的開始將相同的標識符(ID)分配給連續(xù)的網(wǎng)格單元;將建模處理開始的氣泡的體積確定為具有所述ID的連續(xù)網(wǎng)格單元的體積之和;在建模處理中在時間已流逝之后識別具有所述ID的識別的連續(xù)的網(wǎng)格單元;將時間已流逝之后的氣泡的體積確定為具有所述ID的識別的連續(xù)的網(wǎng)格單元的體積之和。

所述方法還可包括:在建模處理的開始確定氣泡的最初的體積;在建模處理的開始確定氣泡的最初的壓力;所述計算氣泡的當前的壓力的步驟可包括:基于氣泡的當前的體積、氣泡的最初的體積和氣泡的最初的壓力來計算氣泡的當前的壓力。

所述確定氣泡的最初的體積的步驟可包括:將氣泡的最初體積確定為在建模處理的開始基于網(wǎng)格單元的模型空間中的不包括任何流體粒子的連續(xù)的網(wǎng)格單元的體積之和;所述確定氣泡的最初的壓力的步驟可包括:將氣泡的最初的壓力確定為與建模處理開始的氣泡相鄰的流體粒子的壓力。

所述方法還可包括:將與建模處理開始的氣泡相鄰的流體粒子的壓力確定為與建模處理開始的氣泡相鄰的流體粒子的個體壓力的平均。

所述計算氣泡的當前的壓力的步驟可包括:根據(jù)下面的等式計算氣泡的當前的壓力:

在上面的等式中,P2表示氣泡的當前的壓力,P1表示氣泡的最初的壓力,V1表示氣泡的最初的體積,V2表示氣泡的當前的體積。

所述將氣泡的當前的壓力施加到與氣泡相鄰的流體粒子的步驟可包括:將氣泡的當前的壓力施加到基于網(wǎng)格單元的模型空間中的包括流體粒子的網(wǎng)格單元。

從下面的具體實施方式、附圖和權(quán)利要求,其他特征和方面將是清楚的。

附圖說明

圖1A和圖1B是示出產(chǎn)生氣泡的示例的示圖。

圖2是示出流體粒子建模方法的示例的流程圖。

圖3是示出定義氣泡的處理的示例的流程圖。

圖4是示出定義的氣泡的示例的示圖。

圖5是示出計算氣泡的壓力的處理的示例的流程圖。

圖6是示出計算有效防止氣泡消失的氣泡的壓力的示例的示圖。

圖7是示出流體粒子建模方法的另一示例的示圖。

圖8是示出更新流體粒子的位置的處理的示例的示圖。

圖9A和圖9B是示出基于氣泡的結(jié)構(gòu)改變而分配新的標識符(ID)的示例的示圖。

圖10是示出流體粒子建模方法的另一示例的流程圖。

圖11是示出流體粒子建模方法的另一示例的流程圖。

圖12A和圖12B是示出重新布置氣泡中的壓力分布以建模氣泡的浮力的處理的示例的示圖。

圖13是示出流體粒子建模設(shè)備的示例的示圖。

貫穿附圖和具體實施方式,相同的附圖標號表示相同的元件。附圖可不按比例,并且為了清楚、說明和方便,附圖中的元件的相對大小、比例和描繪可被夸大。

具體實施方式

提供下面的詳細描述以協(xié)助讀者獲得對在此描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,在此描述的方法、設(shè)備和/或系統(tǒng)的各種變化、修改和等同物對本領(lǐng)域普通技術(shù)人員將是清楚的。在此描述的操作的順序僅是示例,操作的順序不受限于在此闡述的順序,而是除了必須按特定順序發(fā)生的操作之外可如本領(lǐng)域普通技術(shù)人員將清楚的那樣改變。此外,為了更加清楚和簡潔,可省略本領(lǐng)域普通技術(shù)人員所公知的功能和結(jié)構(gòu)的描述。

在此描述的特征可以以不同的形式來實現(xiàn),并且不應(yīng)解釋為受限于在此描述的示例。相反,提供在此描述的示例以使得本公開將是徹底和完整的,并且在此描述的示例將向本領(lǐng)域普通技術(shù)人員傳達本公開的全部范圍。

這里可使用諸如第一、第二、A、B、(a)、(b)的術(shù)語來描述組件。這些術(shù)語不用于限定對應(yīng)組件的本質(zhì)、順序或序列,而僅用于將對應(yīng)組件與一個或多個其他組件進行區(qū)分。例如,第一組件可替換地被稱為第二組件,第二組件可替換地被稱為第一組件。

如果說明書聲明一個組件被“連接”、“結(jié)合”或“接合”到另一組件,則第三組件可被“連接”、“結(jié)合”或“接合”在第一組件與第二組件之間,或者第一組件可直接被“連接”、“結(jié)合”或“接合”到第二組件。如果說明書聲明一個組件被“直接連接”或“直接接合”到另一組件,則第三組件可不被“連接”、“結(jié)合”或“接合”在第一組件與第二組件之間。諸如“在……之間”和“直接在……之間”,以及“與……相鄰”和“與……直接相鄰”的相似的描述將以本相同方式被解釋。

在此使用的術(shù)語僅出于描述具體示例的目的,而不是被用于限制本公開。除非上下文另外明確地指示,否則單數(shù)形式也意在包括復(fù)數(shù)形式。如在此使用的,術(shù)語“包括”、“包含”和“具有”說明存在所敘述的特征、數(shù)量、操作、元件、組件和/或它們的組合,但是不排除存在或添加一個或多個其他特征、數(shù)量、操作、元件、組件和/或它們的組合。

除非另外定義,否則這里使用的包括技術(shù)術(shù)語和科學術(shù)語的所有術(shù)語具有與本公開所屬領(lǐng)域的普通技術(shù)人員通常理解的含義相同的含義。除非在這里明確定義,否則諸如在通用字典中定義的術(shù)語應(yīng)被解釋為具有與相關(guān)領(lǐng)域的背景中的含義一致的含義,并且將不被解釋為理想化或過于正式的含義。

下文中描述的示例可用于建模流體和包括在流體中的氣泡。示例可以在各種裝置(例如,個人計算機(PC)、膝上型計算機、平板計算機、智能電話、電視(TV)、智能家電和可穿戴裝置)中實現(xiàn)。示例可用于圖像處理以建模例如智能電話、移動裝置和智能家居系統(tǒng)中的包括氣泡的流體。例如,示例可類似地在游戲控制臺或游戲機、虛擬現(xiàn)實播放器和三維(3D)建模設(shè)備中使用。

在示例中,建模設(shè)備可被實現(xiàn)為硬件模塊。例如,建模設(shè)備可被實現(xiàn)為單處理器系統(tǒng)、多處理器系統(tǒng)、專用硬件系統(tǒng)、處理器和硬件加速器(HWA)被組合的系統(tǒng)和云計算系統(tǒng)。

圖1A和圖1B是示出產(chǎn)生氣泡的示例的示圖。在圖1A和圖1B的示例中,包括在流體(例如,圖1A的流體120和圖1B的流體140)中的小圓圈指示包括在流體中的流體粒子。

參照圖1A,通過固體110與流體120之間的相互作用產(chǎn)生氣泡。例如,當固體110的一部分淹沒在流體120中并且隨后被流體120的迅速移動或流體120的高流速排出時,流體120中的先前被固體110占據(jù)的空間被空氣填充,流體120的表面由于流體120的高流速而閉合。在先前被固體110占據(jù)的空間中,通過填充該空間的空氣產(chǎn)生氣泡。

參照圖1B,通過流體140的表面之間的碰撞產(chǎn)生氣泡。例如,當波浪在海中升起時,流體140的部分可由于風而以不同的流速和不同的高度移動。流體140的在高位以高流速移動的一部分(例如,浪涌部分)的表面可與流體140的在低位以低流速移動的一部分的表面碰撞。在碰撞的時刻,空氣可能被以高流速移動的浪涌部分捕獲。氣泡可通過被浪涌部分捕獲的空氣而產(chǎn)生。

盡管未示出,但是,例如當通過輕微地傾斜一瓶水將水倒入杯中并且在水流出瓶子的同時瓶外的空氣流入瓶內(nèi)時,可以產(chǎn)生氣泡。

在上面描述的示例中,氣泡可在流體中產(chǎn)生,或從流體中消失,并且氣泡可改變尺寸。

圖2是示出流體粒子建模方法的示例的流程圖??赏ㄟ^流體粒子建模設(shè)備(在下文中,簡稱為建模設(shè)備)執(zhí)行流體粒子建模方法。參照圖2,在操作210中,建模設(shè)備基于流體粒子的位置確定氣泡單元。流體粒子可為包括在通過基于粒子的光滑粒子流體力學(SPH)算法建模的流體中的粒子。可選地,流體粒子可通過基于體素的流體隱式粒子(FLIP)算法被建模。

在基于網(wǎng)格單元的模型空間中,包括流體粒子的網(wǎng)格單元被確定為流體單元。建模設(shè)備將基于網(wǎng)格單元的模型空間中的不包括流體粒子的網(wǎng)格單元確定為氣泡單元。

例如,在基于二維(2D)網(wǎng)格單元的模型空間中,在單個網(wǎng)格單元中可包括四個流體粒子。在基于3D網(wǎng)格單元的模型空間中,在單個網(wǎng)格單元中可包括八個流體粒子。然而,這些僅是示例,在單個網(wǎng)格單元中可包括更多或更少的粒子。

在操作220中,建模設(shè)備基于氣泡單元定義氣泡。建模設(shè)備基于氣泡單元之間的連接關(guān)系確定氣泡,并將標識符(ID)分配給氣泡。將參照圖3和圖4描述通過建模設(shè)備定義空氣泡的詳細處理和定義的空氣泡的示例。

在操作230中,建模設(shè)備基于氣泡體積的改變計算氣泡的壓力。建模設(shè)備基于氣泡先前的體積和基于時間的流逝(例如,建模時間步長)的氣泡當前的體積計算氣泡的壓力。將參照圖5描述通過建模設(shè)備計算氣泡的壓力的詳細處理。

在操作240中,建模設(shè)備基于氣泡的壓力更新流體粒子的位置。建模設(shè)備通過將作為外力的氣泡的壓力施加到與氣泡相鄰的流體粒子來確定更新的流體粒子的位置。將參照圖8描述通過建模設(shè)備更新流體粒子的位置的詳細處理。

圖3是示出定義氣泡的處理的示例的流程圖。參照圖3,在操作310中,建模設(shè)備確定氣泡單元之間的連接關(guān)系。例如,建模設(shè)備可使用泛洪填充(flood-fill)標記算法來確定氣泡單元之間的連接關(guān)系。泛洪填充標記算法是用于確定多維排列中的分配的位置和連接的部分并執(zhí)行標記的算法。泛洪填充標記算法可使用三個參數(shù)(例如,開始節(jié)點、目標顏色和替換顏色)。泛洪填充標記算法通過沿連接到開始節(jié)點的所有節(jié)點將目標顏色改變?yōu)樘鎿Q顏色來確定分配的位置(例如,氣泡單元)和連接的部分(例如,另一氣泡單元)??墒褂脭?shù)據(jù)結(jié)構(gòu)(例如,堆棧和隊列)存儲氣泡單元之間的連接關(guān)系。

在操作320中,建模設(shè)備將氣泡單元之中的連接的氣泡單元確定為單個氣泡。

在操作330中,建模設(shè)備將ID分配給氣泡。分配給氣泡的ID用于追蹤氣泡的運動和氣泡的體積的改變。當結(jié)構(gòu)改變發(fā)生時(例如,當氣泡通過流體粒子的運動或氣泡周圍的對象的碰撞而破裂為多個氣泡,或者氣泡與另一氣泡合并時),建模設(shè)備將新的ID分配給經(jīng)歷結(jié)構(gòu)改變的氣泡。將參照圖9A和圖9B描述基于結(jié)構(gòu)改變將新的ID分配給氣泡的詳細處理。

圖4是示出定義的氣泡的示例的示圖。

建模設(shè)備建模流體與氣泡之間的相互作用,例如,當氣泡在流體(例如,水)中產(chǎn)生,以及單個氣泡破裂為更小的氣泡或多個氣泡合并為單個更大的氣泡時發(fā)生的相互作用。

參照圖4,建模設(shè)備基于SPH算法建模流體粒子以建模包括氣泡430的流體410的運動。

建模設(shè)備使用網(wǎng)格單元建模氣泡430,而不是使用空氣粒子填充流體410中的氣泡430的體積。

在將模型空間450劃分為包括網(wǎng)格單元的網(wǎng)格空間后,建模設(shè)備將包括流體粒子的網(wǎng)格單元確定為流體單元(例如,流體單元415),并將不包括流體粒子的網(wǎng)格單元確定為氣泡單元(例如,氣泡單元435和氣泡單元455)。氣泡單元可被分類為建模流體410外的空氣區(qū)域的氣泡單元(例如,氣泡單元455),以及建模流體410內(nèi)的空氣區(qū)域的氣泡單元(例如,氣泡單元435)。將主要基于建模包括在流體410中的空氣區(qū)域的氣泡單元(例如,氣泡單元435)描述圖4的示例。

因為通過SPH算法在建模流體粒子的處理中確定流體粒子的位置,所以建模設(shè)備在氣泡430的網(wǎng)格和位置中確定流體粒子的位置。

每一氣泡單元基于臨近的氣泡單元的連接關(guān)系被分類為組。連接的氣泡單元所被分類入的單個組被確定為單個氣泡(例如,氣泡430)。連接的氣泡單元的單個組中的氣泡單元在基于網(wǎng)格單元的模型空間中是連續(xù)的氣泡單元。氣泡430的體積被假定為等于氣泡單元的單個組的體積。例如,在包括長方形網(wǎng)格單元的模型空間的情況下,單個氣泡的體積(例如,氣泡430的體積)近似為對應(yīng)的氣泡單元的組的長方形網(wǎng)格單元的體積之和。

建模設(shè)備將ID分配給每一氣泡,并在建模時間步長增加的持續(xù)時間內(nèi)維持分配的ID。氣泡由連接的氣泡單元的組構(gòu)成,并且相同組中的連接的氣泡單元具有相同的ID。在建模進程中,當前的建模時間步長中的氣泡的ID與先前的建模時間步長中的氣泡的ID匹配。

建模設(shè)備可基于將被建模的氣泡的尺寸配置網(wǎng)格單元,并確定或更新每一網(wǎng)格單元是否對應(yīng)于流體或氣體。

在一個示例中,建模設(shè)備通過使用網(wǎng)格單元建模包括在流體中的氣泡替代使用粒子(例如,空氣粒子)填充氣泡,來最小化處理粒子的計算。此外,建模設(shè)備不需要通過使用氣泡單元建模氣泡來計算空氣粒子的最初播種位置和消除位置。

圖5是示出計算氣泡壓力的處理的示例的流程圖。參照圖5,在操作510中,建模設(shè)備基于與氣泡的位置相鄰的流體單元的信息確定氣泡的最初的體積和最初的壓力。例如,流體單元的信息可包括:包括在流體單元中的流體粒子的位置、移動量、移動速度、密度和體積。

在基于網(wǎng)格單元的模型空間中,可針對每一流體單元單獨地存儲,或者在流體單元的網(wǎng)格點存儲流體單元的信息??蛇x地,可針對每一流體粒子存儲,或者針對流體粒子的代表性的粒子存儲流體單元的信息。

例如,建模設(shè)備可將氣泡的最初的體積和最初的壓力確定為在與氣泡的位置相鄰的流體單元中存儲的體積和壓力。在基于網(wǎng)格單元的模型空間中,同一物理量可在臨近的網(wǎng)格單元之中被施加到作用的一個方向,也可基于作用與反作用原理被施加到反方向。

此外,建模設(shè)備可建模流體粒子以使得包括在流體單元中的每一流體粒子的體積或密度滿足體積保留的條件,并將包括在與氣泡的位置相鄰的流體單元中的流體粒子的體積和壓力的平均值(例如,代表性的值)確定為氣泡的最初的體積和最初的壓力。

在操作520中,建模設(shè)備使用氣體狀態(tài)方程計算有效防止氣泡消失的氣泡的壓力。建模設(shè)備基于氣泡的先前的體積(例如,最初的體積)和氣泡的當前的體積來計算氣泡的壓力。將參照圖6描述計算有效防止氣泡消失的氣泡的壓力的詳細處理。

圖6是示出計算有效防止氣泡消失的氣泡的壓力的示例的示圖。

氣體狀態(tài)方程表達氣體(例如,氣泡)的壓力與體積之間的相互關(guān)系,如下面的等式1所示。

PV=nRT (1)

在等式1中,P和V分別表示氣體(例如,氣泡)的壓力和體積,n表示氣體摩爾數(shù),R和T分別表示氣體的氣體常數(shù)和溫度。

假定氣泡的溫度在建模期間不改變,等式1的右邊(nRT)可被常數(shù)k替代。因此,等式1可重寫為PV=k。當給定k的值時,氣體的壓力P可根據(jù)下面的等式2使用氣體的體積V而獲得。

P=k/V (2)

通過前面描述的操作,建模設(shè)備計算氣泡的最初的體積,并追蹤氣泡的ID以計算氣泡的體積隨時間的改變。建模設(shè)備確定氣泡的體積的改變和氣泡的壓力的改變。

單個氣泡的體積被近似為氣泡單元的對應(yīng)的組中的網(wǎng)格單元的體積之和。氣泡單元的對應(yīng)的組中的網(wǎng)格單元在基于網(wǎng)格單元的模型空間中是連續(xù)的單元。因此,當具有相同ID的氣泡單元的體積改變時,建模設(shè)備使用氣體狀態(tài)方程計算有效防止氣泡消失的氣泡的壓力。

將氣泡的壓力施加于相鄰的流體粒子防止氣泡由于流體粒子的移動而不自然地減小尺寸或消失。當氣泡的體積隨時間逐步減小時,建模設(shè)備通過逐步增加氣泡的壓力推動相鄰的流體粒子以防止氣泡消失。例如,建模設(shè)備將作為外力的有效防止氣泡消失的氣泡的壓力施加到與氣泡相鄰的流體粒子以防止被流體粒子包圍的氣泡消失。

在上面描述的示例中,代替使用空氣粒子建模氣泡,氣泡的空氣壓力用于執(zhí)行與空氣粒子相同的功能。因此,建模設(shè)備能夠建模氣泡,同時消除場景依賴性以及當使用空氣粒子建模氣泡時出現(xiàn)的粒子計算的量增加。

圖7是示出流體粒子建模方法的另一示例的示圖。參照圖7,在操作710中,建模設(shè)備基于流體粒子位置確定氣泡單元。

在操作720中,建模設(shè)備基于氣泡單元之間的連接關(guān)系確定氣泡。

在操作730中,建模設(shè)備將ID分配給氣泡。

在操作740中,建模設(shè)備基于氣泡的先前的體積和氣泡的當前的體積計算氣泡的壓力。

在操作750中,建模設(shè)備通過將作為外力的氣泡的壓力施加到與氣泡相鄰的流體粒子來確定流體粒子的更新的位置。將參照圖8描述確定流體粒子的更新的位置的詳細處理。

在操作760中,建模設(shè)備確定氣泡的結(jié)構(gòu)改變是否發(fā)生。氣泡的結(jié)構(gòu)改變包括:氣泡破裂為多個氣泡以及氣泡與另一氣泡合并。

在一個示例中,建模設(shè)備通過在不同的建模時間步長中的ID匹配來確定氣泡的結(jié)構(gòu)改變是否發(fā)生。例如,建模設(shè)備使用最佳重疊算法確定與第一建模時間步長中的位置對應(yīng)的氣泡的ID是否和與第二建模時間步長中的位置對應(yīng)的氣泡的ID匹配。建模設(shè)備通過使用最佳重疊算法確定與ID對應(yīng)的氣泡是否滿足氣泡的原始的位置,以及通過確定氣泡是否重疊于與原始的位置對應(yīng)的氣泡,來確定氣泡的結(jié)構(gòu)改變是否發(fā)生。

最佳重疊算法的示例在下面的表1中示出。

表1

當在操作760中確定結(jié)構(gòu)改變不發(fā)生時,建模設(shè)備終止圖7中的處理。

在操作770中,當在操作760中確定結(jié)構(gòu)改變發(fā)生時,建模設(shè)備將新的ID分配給經(jīng)歷結(jié)構(gòu)改變的氣泡。將參照圖9A和圖9B描述將新的ID分配給結(jié)構(gòu)改變所發(fā)生的氣泡的詳細處理。隨后,建模設(shè)備追蹤新的ID所分配的氣泡,并在操作740中基于氣泡的先前的體積和當前的體積計算氣泡的壓力。

圖8是示出更新流體粒子的位置的處理的示例的示圖。在圖8的示例中,基于網(wǎng)格單元的模型空間中的流體單元和氣泡單元的的網(wǎng)格點被示出。

參照圖8,網(wǎng)格點810包括與網(wǎng)格點810相鄰的氣泡單元(例如,氣泡單元825)的信息,網(wǎng)格點830包括與網(wǎng)格點830相鄰的流體單元(例如,流體單元845)的信息。網(wǎng)格點850包括氣泡單元(例如,氣泡單元825)的信息和流體單元(例如,流體單元845)的信息。

流體單元的信息可包括:包括在流體單元中的流體粒子的位置、移動量、移動速度、密度和體積。

在基于網(wǎng)格單元的模型空間中,流體單元的信息可以以網(wǎng)格單元的網(wǎng)格點的代表值或平均值的形式被存儲、針對每一流體粒子被存儲或針對流體粒子之中的代表性粒子被存儲。

建模設(shè)備將與氣泡820的位置相鄰的流體單元的體積和壓力確定為氣泡820的最初的體積V1和最初的壓力P1。在基于網(wǎng)格單元的模型空間中,同一物理量在臨近的網(wǎng)格單元之間以相反的方向作用,因此可在臨近的網(wǎng)格單元之間獲得平衡。

建模設(shè)備基于氣泡820的先前的體積V1和氣泡820的當前的體積V2來計算氣泡820的改變的壓力P2。因為如上面關(guān)于等式1所描述的,PV=k(其中,k是等于nRT的常數(shù)),所以P1V1=P2V2,因此P2可根據(jù)下面的等式3被計算。

建模設(shè)備將氣泡820的計算的壓力P2作為新的外力施加到與氣泡820相鄰的流體粒子。建模設(shè)備基于作用在與氣泡820相鄰的流體粒子上的新的外力P2使用SPH算法更新流體粒子的位置。

當流體粒子響應(yīng)于新的外力P2而移動時,預(yù)計將被流體粒子接收的力可使用例如已知流體粒子的最初的位置和更新的位置,以及流體粒子的移動速度的一般的物理方程而被計算。

圖9A和圖9B是示出基于氣泡的結(jié)構(gòu)改變而分配新的ID的示例的示圖。由于流體的移動或流體與對象的碰撞,包括在流體中的的氣泡可破裂為多個小氣泡或多個氣泡可合并為單個氣泡。

圖9A示出單個氣泡910破裂為兩個氣泡920和930的示例。參照圖9A,具有ID B的氣泡910破裂為氣泡920和氣泡930。在圖9A的示例中,建模設(shè)備將ID C分配給氣泡920并將ID D分配給氣泡930。

可選地,建模設(shè)備可基于氣泡910的ID B分配新的ID以指示氣泡920和氣泡930已從氣泡910分離。例如,建模設(shè)備可將ID B-1分配給氣泡920并將ID B-2分配給氣泡930。

圖9B示出兩個氣泡910和940合并為單個新的氣泡950的示例。參照圖9B,具有ID B的氣泡910和具有ID E的氣泡940合并為氣泡950。在圖9B的示例中,建模設(shè)備將新的ID F分配給氣泡950。

當由于一個氣泡或多個氣泡的合并或破裂而發(fā)生結(jié)構(gòu)改變時,經(jīng)歷結(jié)構(gòu)改變的氣泡的體積同樣改變,因此在結(jié)構(gòu)改變之前連續(xù)追蹤原始的一個氣泡或多個氣泡的體積的改變是無意義的。據(jù)此,建模設(shè)備開始追蹤新的ID所分配的氣泡的體積的改變。

圖10是示出流體粒子建模方法的另一示例的流程圖。參照圖10,在操作1010中,建模設(shè)備建模流體運動。例如,建模設(shè)備使用基于粒子的SPH算法對流體進行采樣以獲取多個流體粒子,并在每一建模時間步長中通過對每一流體粒子隨時間的加速度和速度進行積分來確定流體粒子的位置。

在操作1020中,建模設(shè)備確定氣泡單元,并將ID分配給由氣泡單元構(gòu)成的氣泡。因為流體粒子的位置已在操作1010中被確定,所以建模設(shè)備確定流體粒子在網(wǎng)格中的位置。建模設(shè)備將不包括任何流體粒子的網(wǎng)格單元確定為氣泡單元。建模設(shè)備通過確定每一氣泡單元和與氣泡相鄰的氣泡單元之間的連接關(guān)系來定義氣泡。建模設(shè)備將ID分配給每一氣泡。當建模時間步長增加時,建模設(shè)備保持分配到氣泡的ID。

在操作1030中,建模設(shè)備針對識別氣泡的每一ID追蹤體積的改變。氣泡包括具有相同的ID的連接的氣泡單元。因此,氣泡的體積約等于氣泡單元的體積之和。當具有相同ID的氣泡單元的體積改變時,建模設(shè)備基于等式(例如,PV=k)來計算有效防止氣泡單元消失的壓力。當結(jié)構(gòu)改變(例如,氣泡的合并或破裂)發(fā)生時,追蹤在結(jié)構(gòu)改變發(fā)生之前的氣泡的體積是沒有意義的。因此,建模設(shè)備針對與經(jīng)歷結(jié)構(gòu)改變的氣泡對應(yīng)的新的ID追蹤體積的改變。

在操作1040中,建模設(shè)備確定作為針對每一ID追蹤體積的改變的結(jié)果體積是否改變。當在操作1040中建模設(shè)備確定體積沒有改變時,建模設(shè)備終止圖10中的處理。

在操作1050中,當在操作1040中建模設(shè)備確定體積改變時,建模設(shè)備計算體積所改變的氣泡的壓力。建模設(shè)備基于氣泡的體積使用氣體狀態(tài)方程計算氣泡的壓力。在氣泡的溫度為常數(shù)的假定下,如從上面的等式3可見,氣泡的壓力和體積相互成反比。

在操作1060中,建模設(shè)備基于在操作1050中計算的氣泡的壓力來更新流體粒子的位置。建模設(shè)備通過將在操作1050中計算的氣泡的壓力施加到與氣泡相鄰的流體粒子來更新流體粒子的位置。

在操作1010中,建模設(shè)備基于更新的流體粒子的位置建模流體運動。

圖11是示出流體粒子建模方法的另一示例的流程圖。針對圖11的操作1110至1130的描述,參考圖2的操作210至230的描述。

參照圖11,在操作1140中,建模設(shè)備重新布置氣泡中的壓力分布以建模氣泡的浮力。建模設(shè)備基于構(gòu)成氣泡的氣泡單元的的位置逐步改變氣泡中的壓力分布。氣泡單元的位置可被解釋為在模型空間中從參考水平面到氣泡單元的高度。將參照圖12A和圖12B詳細描述由建模設(shè)備執(zhí)行的重新布置氣泡中的壓力分布的處理。

在操作1150中,建模設(shè)備基于重新布置的氣泡中的壓力分布更新流體粒子的位置。例如,建模設(shè)備計算通過重新布置氣泡中的壓力分布而產(chǎn)生的浮力。建模設(shè)備通過將作為外力的浮力施加到與氣泡相鄰的流體粒子來更新流體粒子的位置。

圖12A和圖12B是示出重新布置氣泡中的壓力分布以建模氣泡的浮力的處理的示例的示圖。圖12A示出重新布置的氣泡中的壓力分布的示例。

參照圖12A,建模設(shè)備使用逐步改變氣泡1210中的壓力分布的漸變(gradation)方法以建模氣泡1210的浮力。建模設(shè)備基于構(gòu)成氣泡1210的氣泡單元的位置逐步改變壓力分布。例如,如在圖12A中所示,建模設(shè)備重新布置在如在圖6中所示的所有方向上相同的壓力以建模氣泡1210的浮力。

浮力可使用下面的等式4而獲得。

浮力=(ρ)×(V)×(g) (4)

在等式4中,ρ表示流體密度,V表示體積,g表示重力加速度。

建模設(shè)備通過增加在構(gòu)成氣泡1210的氣泡單元之中的較高位置的氣泡單元1213的壓力并減小在構(gòu)成氣泡1210的氣泡單元之中的較低位置的氣泡單元1216的壓力來重新布置壓力,以使得氣泡1210中的壓力分布逐步地改變。

圖12B是示出氣泡單元的位置或高度與氣泡的壓力之間的相互關(guān)系的曲線圖。在構(gòu)成氣泡的多個氣泡單元之中處于較高位置的氣泡單元具有相對更高的壓力,在構(gòu)成氣泡的氣泡單元之中處于較低位置的氣泡單元具有相對更低的壓力。構(gòu)成氣泡的氣泡單元的壓力的平均值等于針對氣泡計算的壓力。

參照圖12B的曲線圖,當密度比為1000:1時,相比于當密度比為100:1的情況,基于氣泡單元的位置或高度的壓力的改變大。密度比是流體密度與氣泡密度之比。對于相同類型的氣泡,密度比隨著流體密度的增加而增加。因此,當密度比增加時,相同體積的氣泡的浮力也增加。當作用在氣泡上的浮力增加時,基于氣泡中的氣泡單元的位置的壓力改變也增加。

參照圖12A和圖12B,基于浮力的方向確定將被施加到與氣泡(例如,氣泡1210)相鄰的流體粒子的壓力。例如,與氣泡1210的壓力和氣泡1210的浮力之和對應(yīng)的外力被施加到包括在處于較高位置的氣泡單元1213中的流體粒子,與氣泡1210的壓力和氣泡1210的浮力之差對應(yīng)的外力被施加到包括在處于較低位置的氣泡單元1216中的流體粒子。此外,與氣泡1210的壓力對應(yīng)的外力在氣泡單元1213和1216的右側(cè)和左側(cè)被施加到包括在單元中的流體粒子。

圖13是示出流體粒子建模設(shè)備的示例的示圖。

參照圖13,流體粒子建模設(shè)備1330包括處理器1310和存儲器1330。處理器1310和存儲器1330通過總線1350相互通信。

處理器1310基于流體粒子的位置確定氣泡單元,基于氣泡單元定義氣泡,基于氣泡的體積的改變計算氣泡的壓力,并基于計算的氣泡的壓力更新流體粒子的位置。

在基于網(wǎng)格單元的模型空間中,處理器1310將不包括任何流體粒子的網(wǎng)格單元確定為氣泡單元。處理器基于氣泡單元之間的連接關(guān)系定義氣泡,并將ID分配給氣泡。處理器1310基于與氣泡的位置相鄰的流體單元的信息確定氣泡的最初體積和最初壓力。處理器1310基于氣泡的先前的體積和當前的體積計算氣泡的壓力。處理器1310使用氣體狀態(tài)方程計算有效防止氣泡消失的壓力。

此外,處理器1310通過在不同的建模時間步長中的ID匹配來確定氣泡的結(jié)構(gòu)改變是否發(fā)生,并將新的ID分配給發(fā)生結(jié)構(gòu)改變的氣泡。例如,氣泡的結(jié)構(gòu)改變可包括:氣泡破裂為多個氣泡以及氣泡與另一氣泡合并。

處理器1310使用SPH方法建模流體粒子。處理器1310通過將作為外力的氣泡壓力施加到與氣泡相鄰的流體粒子來確定更新的流體粒子的位置。

處理器1310重新布置氣泡中的壓力分布以建模氣泡的浮力。處理器1310基于構(gòu)成氣泡的氣泡單元的位置逐步改變壓力分布。處理器1310增加在構(gòu)成氣泡的氣泡單元之中處于較高位置的氣泡單元的壓力,并減小在構(gòu)成氣泡的氣泡單元之中處于較低位置的氣泡單元的壓力。

存儲器1330存儲在基于網(wǎng)格單元的模型空間中包括流體粒子的流體單元的信息以及不包括流體粒子的氣泡單元的信息。存儲器1330可為易失性存儲器或非易失性存儲器。

處理器1310可執(zhí)行上面參照圖1A至圖12B描述的任何處理和方法。處理器1310可執(zhí)行程序并控制流體粒子建模設(shè)備1300。將由處理器1310執(zhí)行的程序指令可被存儲在存儲器1330中。流體粒子建模設(shè)備1300可通過輸入或輸出裝置(未示出)連接到外部裝置(例如,個人計算機(PC)和網(wǎng)絡(luò)),并與外部裝置交換數(shù)據(jù)。

例如,上面參照圖1A至圖12B描述的任何處理或方法可以以在移動裝置(諸如,移動電話、智能電話、個人數(shù)字助理(PDA)、平板計算機或膝上型計算機)、計算裝置(諸如,PC、平板計算機或上網(wǎng)本)和其他各種電子系統(tǒng)(諸如,電視(TV)、智能TV、虛擬現(xiàn)實(VR)提供裝置、游戲控制臺或游戲機)中的硬件上操作的應(yīng)用的形式實現(xiàn),或可以以用于執(zhí)行處理或方法的芯片的形式被嵌入其中。

通過硬件組件來實現(xiàn)圖13中所示的執(zhí)行在此描述的關(guān)于圖1A至圖13的操作的流體粒子建模設(shè)備1300、處理器1310和存儲器1330。硬件組件的示例包括控制器、傳感器、發(fā)生器、驅(qū)動器、存儲器、比較器、算術(shù)邏輯單元、加法器、減法器、乘法器、除法器、積分器以及本領(lǐng)域普通技術(shù)人員所知的任何其他電子組件。在一個示例中,通過計算硬件(例如,通過一個或多個處理器或計算機)來實現(xiàn)硬件組件。通過一個或多個處理元件(諸如,邏輯門陣列、控制器和算術(shù)邏輯單元、數(shù)字信號處理器、微型計算機、可編程邏輯控制器、現(xiàn)場可編程門陣列、可編程邏輯陣列、微處理器或者本領(lǐng)域普通技術(shù)人員所知的能夠以限定方式響應(yīng)并執(zhí)行指令以達到預(yù)期結(jié)果的任何其他裝置或裝置的組合)來實現(xiàn)處理器或計算機。在一個示例中,處理器或計算機包括或者被連接到存儲由處理器或計算機執(zhí)行的指令或軟件的一個或多個存儲器。由處理器或計算機實現(xiàn)的硬件組件執(zhí)行指令或軟件,諸如操作系統(tǒng)(OS)和在OS上運行的一個或多個軟件應(yīng)用,以執(zhí)行在此描述的關(guān)于圖1A至圖13的操作。硬件組件還響應(yīng)于指令或軟件的執(zhí)行而訪問、操控、處理、創(chuàng)建和存儲數(shù)據(jù)。為了簡化,單數(shù)術(shù)語“處理器”或“計算機”可被用于在此描述的示例的描述,但是,在其他示例中,多個處理器或計算機被使用,或者處理器或計算機包括多個處理元件或多種類型的處理元件,或二者兼有。在一個示例中,硬件組件包括多個處理器,在另一示例中,硬件組件包括處理器和控制器。硬件組件具有不同的處理配置中的任何一個或多個,不同的處理配置的示例包括:單個處理器、獨立處理器、并行處理器、單指令單數(shù)據(jù)(SISD)多處理、單指令多數(shù)據(jù)(SIMD)多處理、多指令單數(shù)據(jù)(MISD)多處理以及多指令多數(shù)據(jù)(MIMD)多處理。

由計算硬件(例如,由如上描述的執(zhí)行指令或軟件以執(zhí)行在此描述的操作的一個或多個處理器或計算機)執(zhí)行在圖2、圖3、圖5、圖7、圖10和圖11中所示的執(zhí)行在此參照圖1A至圖13所描述的操作的方法。

用于控制處理器或計算機實現(xiàn)硬件組件并且執(zhí)行以上描述的方法的指令或軟件被編寫為計算機程序、代碼段、指令或者它們的任何組合,以單獨地或共同地指示或配置處理器或計算機如機器或?qū)S糜嬎銠C一樣進行操作,以執(zhí)行由硬件組件執(zhí)行的操作和如以上描述的方法。在一個示例中,指令或軟件包括直接地由處理器或計算機執(zhí)行的機器代碼(諸如,由編譯器產(chǎn)生的機器代碼)。在另一示例中,指令或軟件包括由處理器或計算機使用解釋器執(zhí)行的高級代碼。本領(lǐng)域的普通技術(shù)編程者能基于附圖中所示的框圖和流程圖以及公開了用于執(zhí)行由硬件組件執(zhí)行的操作和如以上描述的方法的算法的說明書中的相應(yīng)描述,來容易地編寫指令或軟件。

用于控制處理器或計算機以實現(xiàn)硬件組件和執(zhí)行如以上描述的方法的指令或軟件,以及任何相關(guān)的數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)被記錄、存儲或固定在一個或多個非暫時性計算機可讀存儲介質(zhì)中或被記錄、存儲或固定在一個或多個非暫時性計算機可讀存儲介質(zhì)上。非暫時性計算機可讀存儲介質(zhì)的示例包括:只讀存儲器(ROM)、隨機存取存儲器(RAM)、閃存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁帶、軟盤、磁光數(shù)據(jù)存儲裝置、光學數(shù)據(jù)存儲裝置、硬盤、固態(tài)盤,以及本領(lǐng)域普通技術(shù)人員所知的任何裝置,所述任何裝置能夠以非暫時性方式存儲指令或軟件以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu),并且將指令或軟件以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)提供給處理器或計算機,從而處理器或計算機能執(zhí)行指令。在一個示例中,指令或軟件以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)被分布在聯(lián)網(wǎng)的計算機系統(tǒng)上,從而指令和軟件以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)以分布的方式被處理器或計算機存儲、訪問和執(zhí)行。

雖然本公開包括特定示例,但是,對本領(lǐng)域的普通技術(shù)人員而言將清楚的是,在不脫離權(quán)利要求及其等同物的精神和范圍的情況下,可在這些示例中在形式和細節(jié)上進行各種改變。在此描述的示例應(yīng)被理解為僅具有描述性意義,而不是用于限制的目的。對每個示例中的特征或方面的描述應(yīng)被理解為可應(yīng)用于其他示例中的類似的特征或方面。如果以不同的順序執(zhí)行所描述的技術(shù),和/或如果所描述的系統(tǒng)、構(gòu)架、裝置或電路中的組件以不同的方式來組合,和/或由其他組件或它們的等同物來替換或補充,則可獲得合適的結(jié)果。因此,本公開的范圍不是由具體實施方式來限定,而是由權(quán)利要求及其等同物來限定,并且在權(quán)利要求及其等同物的范圍內(nèi)的所有變化應(yīng)被解釋為被包括在本公開中。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新津县| 环江| 于田县| 北京市| 新郑市| 栾川县| 扶余县| 古交市| 广汉市| 都昌县| 白沙| 定陶县| 禹州市| 济源市| 梧州市| 鱼台县| 湖南省| 潼南县| 砀山县| 建水县| 德惠市| 昌乐县| 东至县| 夏邑县| 高安市| 邵阳县| 新密市| 延川县| 龙里县| 左贡县| 巴南区| 凌海市| 开化县| 伊吾县| 阳谷县| 庆城县| 金华市| 湖口县| 泽州县| 昌黎县| 炉霍县|