本發(fā)明屬于計算機圖形學領域,尤其涉及一種流體固體耦合的方法和裝置。
背景技術:
隨著計算機仿真和虛擬現(xiàn)實技術的快速發(fā)展,近年來基于物理的流體固體耦合(以下簡稱流固耦合)仿真及其相關應用已經成為一個重要的研究方向,在計算機動畫、游戲開發(fā)和工業(yè)設計等領域具有巨大的應用價值。流固耦合涉及流體和固體之間的許多復雜交互,包括邊界處理、耦合力計算和耦合響應等方面。
目前研究人員提出了一些最新的方法用于耦合流體與復雜的固體模型,例如剛體和可變形固體,并取得了較好的效果。通過在固體表面三角網格上采樣代理粒子或邊界粒子用以實現(xiàn)固體與流體的耦合是最近比較流行的一種方法。例如,在剛體表面采樣均勻分布的邊界粒子與流體粒子相互耦合,所采樣的邊界粒子被用于修改邊界流體的密度以及計算與流體粒子間的雙向耦合力。
然而,上述現(xiàn)有的流體固體耦合方法在每個步長都對固體表面所有三角面片以同樣分辨率進行無差別采樣,如此,對于復雜仿真場景或較大的固體模型而言會導致采樣粒子數量過大,從而增加計算負擔。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種流體固體耦合的方法和裝置,以減小實現(xiàn)流體固體耦合時的運算量。
本發(fā)明第一方面提供一種流體固體耦合的方法,所述方法包括:
計算可形變固體表面的局部高斯曲率;
根據所述可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和所述支持域相應的光滑核函數;
耦合流體粒子和所述不同分辨率的代理粒子以實現(xiàn)流體固體的耦合。
本發(fā)明第二方面提供一種流體固體耦合的裝置,所述裝置包括:
計算模塊,用于計算可形變固體表面的局部高斯曲率;
生成模塊,用于根據所述可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和所述支持域相應的光滑核函數;
耦合模塊,用于耦合流體粒子和所述不同分辨率的代理粒子以實現(xiàn)流體固體的耦合。
從上述本發(fā)明技術方案可知,與現(xiàn)有的流體固體耦合方法在每個步長都對固體表面所有三角面片以同樣分辨率進行無差別采樣相比,本發(fā)明的技術方案根據可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和所述支持域相應的光滑核函數,代理粒子自適應地生成,不僅減小了流體固體耦合時的運算量,而且能夠獲得逼真高效的流固耦合仿真結果。
附圖說明
圖1是本發(fā)明實施例一提供的流體固體耦合的方法的實現(xiàn)流程示意圖;
圖2是本發(fā)明實施例二提供的流體固體耦合的裝置的結構示意圖;
圖3是本發(fā)明實施例三提供的流體固體耦合的裝置的結構示意圖;
圖4是本發(fā)明實施例四提供的流體固體耦合的裝置的結構示意圖;
圖5是本發(fā)明實施例五提供的流體固體耦合的裝置的結構示意圖;
圖6-a是本發(fā)明實施例六提供的流體固體耦合的裝置的結構示意圖;
圖6-b是本發(fā)明實施例七提供的流體固體耦合的裝置的結構示意圖;
圖6-c是本發(fā)明實施例八提供的流體固體耦合的裝置的結構示意圖;
圖6-d是本發(fā)明實施例九提供的流體固體耦合的裝置的結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例提供一種流體固體耦合的方法,所述方法包括:計算可形變固體表面的局部高斯曲率;根據所述可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和所述支持域相應的光滑核函數;耦合流體粒子和所述不同分辨率的代理粒子以實現(xiàn)流體固體的耦合。本發(fā)明實施例還提供相應的流體固體耦合的裝置。以下分別進行詳細說明。
請參閱附圖1,是本發(fā)明實施例一提供的流體固體耦合的方法的實現(xiàn)流程示意圖,主要包括以下步驟S101至步驟S103,詳細說明如下:
S101,計算可形變固體表面的局部高斯曲率。
在本發(fā)明實施例中,對于任一三角形面片,可計算得到三種類型的局部高斯曲率,第一種是三角形頂點的局部高斯曲率,即,頂點的高斯曲率,第二種為三角形三條邊上的局部高斯曲率,即,每條邊上兩個頂點的局部高斯曲率平均值,第三種為三角形面片內部的局部高斯曲率,即,三角形三個頂點的局部高斯曲率平均值;可以根據可形變固體表面的局部高斯曲率來評估復雜固體模型的各區(qū)域復雜性。
S102,根據步驟S101計算出的可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和支持域相應的光滑核函數。
作為本發(fā)明一個實施例,根據步驟S101計算出的可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和支持域相應的光滑核函數可通過如下步驟S1021和S1022實現(xiàn):
S1021,在可形變固體模型的三角片上根據局部高斯曲率計算生成不同分辨率的代理粒子和不同大小的光滑核函數半徑。
所謂不同分辨率的代理粒子即不同粒子間距的代理粒子,局部高斯曲率越大,則所生成的代理粒子分辨率越高、粒子間距越??;對于邊E的代理粒子,其間距為其中,hf是流體粒子的光滑核函數半徑,是邊E的局部高斯曲率。在本發(fā)明實施例中,在可形變固體模型的三角片上根據局部高斯曲率計算生成不同分辨率的代理粒子具體可以是:在可形變固體表面的三角形面片T的內部,沿著三角形最短邊的法向方向采用掃描線算法生成代理粒子,其間距為是三角形面片T的局部高斯曲率。
S1022,根據局部高斯曲率以不同密度對所述可形變固體表面采樣代理粒子,將代理粒子光滑核函數的支持域設計為橢球設計橢球的光滑核函數為W(r,G)=ξdet(G)P(||Gr||),其中,a、b為赤道半徑,c為極半徑,ξ為系數,r=x-xi,G=diag(h2s-T,h2s-T,h2f)或G=diag(h2s-AB,h2f,h2f)。
在本發(fā)明實施例中,將代理粒子光滑核函數的支持域設計為橢球時,將垂直于三角面片的軸向半徑設置為較小值,對ΔABC內部的代理粒子,則G=diag(h2s-T,h2s-T,h2f),對ΔABC邊AB上的代理粒子,則可以得到G=diag(h2s-AB,h2f,h2f),AC邊和BC邊上的代理粒子相應的G可類似得到,P(||Gr||)是關于Gr的三次樣條多項式。
S103,耦合流體粒子和經步驟S102生成的不同分辨率的代理粒子,以實現(xiàn)流體固體的耦合。
為了處理SPH核函數在邊界處不連續(xù)的問題,減少因此帶來的計算誤差,在本發(fā)明實施例中,耦合流體粒子和不同分辨率的代理粒子以實現(xiàn)流體固體的耦合之前還包括:采用正則化的方式求解光滑核函數邊界處代理粒子和流體粒子的物理量A,此處,mj為粒子質量,ρj為為粒子密度。
在上述本發(fā)明實施例中,若可形變固體發(fā)生形變,則上述實施例的方法還包括:重新根據所述可形變固體表面的局部高斯曲率重采樣代理粒子,并根據可形變固體表面三角面片形變的大小自適應地改變代理粒子的切向光滑核半徑的大小,設ηT=S'/S,S和S'分別是三角形面片變形前后的面積,那么變形后三角面片內代理粒子的切向光滑核半徑為
從上述附圖1示例的流體固體耦合的方法可知,與現(xiàn)有的流體固體耦合方法在每個步長都對固體表面所有三角面片以同樣分辨率進行無差別采樣相比,本發(fā)明的技術方案根據可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和所述支持域相應的光滑核函數,代理粒子自適應地生成,不僅減小了流體固體耦合時的運算量,而且能夠獲得逼真高效的流固耦合仿真結果。
請參閱附圖2,是本發(fā)明實施例二提供的流體固體耦合的裝置的結構示意圖。為了便于說明,附圖2僅示出了與本發(fā)明實施例相關的部分。附圖2示例的流體固體耦合的裝置可以是附圖1示例的流體固體耦合的方法的執(zhí)行主體。附圖2示例的流體固體耦合的裝置主要包括計算模塊201、生成模塊202和耦合模塊203,其中:
計算模塊201,用于計算可形變固體表面的局部高斯曲率;
生成模塊202,用于根據可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和支持域相應的光滑核函數;
耦合模塊203,用于耦合流體粒子和不同分辨率的代理粒子以實現(xiàn)流體固體的耦合。
需要說明的是,以上附圖2示例的流體固體耦合的裝置的實施方式中,各功能模塊的劃分僅是舉例說明,實際應用中可以根據需要,例如相應硬件的配置要求或者軟件的實現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將所述流體固體耦合的裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實際應用中,本實施例中的相應的功能模塊可以是由相應的硬件實現(xiàn),也可以由相應的硬件執(zhí)行相應的軟件完成,例如,前述的生成模塊,可以是具有執(zhí)行前述根據可形變固體表面的局部高斯曲率,生成不同分辨率的代理粒子及其支持域和支持域相應的光滑核函數的硬件,例如生成器,也可以是能夠執(zhí)行相應計算機程序從而完成前述功能的一般處理器或者其他硬件設備;再如前述的耦合模塊,可以是執(zhí)行耦合流體粒子和不同分辨率的代理粒子以實現(xiàn)流體固體的耦合的硬件,例如耦合器,也可以是能夠執(zhí)行相應計算機程序從而完成前述功能的一般處理器或者其他硬件設備(本說明書提供的各個實施例都可應用上述描述原則)。
附圖2示例的生成模塊202可以包括計算單元301和采樣單元302,如附圖3所示本發(fā)明實施例三提供的流體固體耦合的裝置,其中:
計算單元301,用于在可形變固體模型的三角片上根據局部高斯曲率計算生成不同分辨率的代理粒子和不同大小的光滑核函數半徑;
采樣單元302,用于根據局部高斯曲率以不同密度對可形變固體表面采樣代理粒子,將代理粒子光滑核函數的支持域設計為橢球設計橢球的光滑核函數為W(r,G)=ξdet(G)P(||Gr||),其中,a、b為赤道半徑,c為極半徑,ξ為系數,r=x-xi,G=diag(h2s-T,h2s-T,h2f)或G=diag(h2s-AB,h2f,h2f),P(||Gr||)是關于Gr的三次樣條多項式。
附圖3示例的計算單元301可以包括代理粒子生成單元401,如附圖4所示本發(fā)明實施例四提供的流體固體耦合的裝置。代理粒子生成單元401用于在可形變固體表面的三角形面片T的內部,沿著三角形最短邊的法向方向采用掃描線算法生成代理粒子。
附圖2示例的流體固體耦合的裝置還可以包括邊界處理模塊501,如附圖5所示本發(fā)明實施例五提供的流體固體耦合的裝置。邊界處理模塊501用于耦合模塊203耦合流體粒子和不同分辨率的代理粒子以實現(xiàn)流體固體的耦合之前,采用正則化的方式求解光滑核函數邊界處代理粒子和流體粒子的物理量A。
附圖2至5任一示例的流體固體耦合的裝置還可以包括重處理模塊601,如附圖6-a至6-d所示本發(fā)明實施例六至九提供的流體固體耦合的裝置。重處理模塊601用于若可形變固體發(fā)生形變,則重新根據可形變固體表面的局部高斯曲率重采樣代理粒子,并根據可形變固體表面三角面片形變的大小自適應地改變代理粒子的切向光滑核半徑的大小。
需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內容,由于與本發(fā)明方法實施例基于同一構思,其帶來的技術效果與本發(fā)明方法實施例相同,具體內容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的流體固體耦合的方法和裝置進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。