一種有限元網(wǎng)格曲面剖分方法
【技術領域】
[0001] 本發(fā)明屬于數(shù)值計算的技術領域,具體地涉及一種有限元網(wǎng)格曲面剖分方法。
【背景技術】
[0002] 有限元法是20世界60年代出現(xiàn)的一種數(shù)值計算方法,最初用于固體力學的數(shù)值 計算,上世紀70年代英國科學家Zinenkiewicz 0. C等人的努力下,將它推廣到各類場問題 的數(shù)值求解,如溫度場、電磁場、應力場等。有限元法的最初的思想是把一個大的結構劃分 為有限個稱為單元的小區(qū)域,在每一個小區(qū)域里,假定結構的變形和應力都是簡單的,小區(qū) 域內的變形和應力都容易通過計算機求解出來,進而可以獲得整個結構的變形和應力。
[0003] 隨著計算機技術的飛速發(fā)展,有限元法無論在理論上還是應用上都取得了巨大的 成功,已經成為了工業(yè)設計、土木施工等領域的不可缺少的工具,越來越多大型且復雜的工 程設計都是由有限元法來模擬的。商業(yè)上也有許多有限元分析軟件,例如 :AbaqUs、ANSYS、 Hypermesh等。軟硬件上的突破,加上近些年來工業(yè)、土木、經濟等發(fā)展迅速,都成就了有限 元法在設計和分析領域的不可或缺的地位。
[0004] 在有限元分析法中,一個重要的思想就是"分",也就是對模型進行剖分。通過有限 元法進行單元的剖分,進而更深一步進行單元分析,再將剖分后的單元合并成單元集合,繼 而可以對整體結構進行綜合分析。劉懷輝等人曾經提出用AFT的改進算法進行平面區(qū)域的 有限元三角網(wǎng)格剖分;周勇等人則提出用BST樹來模擬剖分過程,以便實現(xiàn)任意有限元網(wǎng) 格的深度排序;Matsutomo等人利用粗網(wǎng)格計算磁通線,計算電磁場的不同密度來完成網(wǎng) 格剖分。
[0005] 然而,現(xiàn)有的有限元剖分方法通常存在一些問題。例如,只能對平面有限元網(wǎng)格進 行剖分;剖分之前需要指定切面方程來完成剖分;剖分算法效率較低;剖分之后合并成集 合單元真實感不強。針對這些問題,我提出了一種新的有限元剖分方法,這個方法基于RBF 插值函數(shù),將用戶在屏幕上畫出的任意曲線進行插值方程構建,通過有限元網(wǎng)格模型與方 程的位置關系來完成有限元網(wǎng)格的曲面剖分。
【發(fā)明內容】
[0006] 本發(fā)明的技術解決問題是:克服現(xiàn)有技術的不足,提供一種有限元網(wǎng)格曲面剖分 方法,其使得剖分效率大幅提高,簡化了交互過程,提升了視覺效果,同時這種新方法不但 可以完成曲面剖分,更可以輕松實現(xiàn)平面剖分。
[0007] 本發(fā)明的技術解決方案是:這種有限元網(wǎng)格曲面剖分方法,該方法包括以下步 驟:
[0008] (1)有限元數(shù)據(jù)的預處理,得到一個節(jié)點表和一個單元表,節(jié)點表是節(jié)點的所有信 息和所屬單元的索引列表,單元表是單元的所有信息和構成該單元的索引;
[0009] (2)用鼠標在屏幕上畫任意曲線,得到屏幕上二維坐標點的集合,用RBF方法構 建方程,這個方程代表了上一步畫的曲線,求三維有限元數(shù)據(jù)的所有點在該方程下的值,其 中值為正代表在曲線上方,值為負代表在曲線下方,值為零的點為切點,遍歷有限元所有單 元,插值生成所有離散的切點,把這些離散的切點進行三角化,生成曲面剖面。
[0010] 利用任意曲線上的點構建完成插值方程之后,發(fā)現(xiàn)對有限元單元進行任意曲面剖 分只可能存在三種情況,曲線上方的點、曲線下方的點和位于曲線上的點。因此,本發(fā)明 將RBF插值函數(shù)應用到了有限元剖分中,將用戶在屏幕上畫出的任意曲線進行插值方程構 建,通過有限元網(wǎng)絡模型與方程的位置關系來完成有限元網(wǎng)格的曲面剖分,從而使得剖 分效率大幅提高,簡化了交互過程,提升了視覺效果,同時這種新方法不但可以完成曲面剖 分,更可以輕松實現(xiàn)平面剖分。
【附圖說明】
[0011] 圖1是本方法的流程圖。
[0012] 圖2是六面體單元的編號示意圖。
【具體實施方式】
[0013] 這種有限元網(wǎng)格曲面剖分方法,該方法包括以下步驟:
[0014] (1)有限元數(shù)據(jù)的預處理,得到一個節(jié)點表和一個單元表,節(jié)點表是節(jié)點的所有信 息和所屬單元的索引列表,單元表是單元的所有信息和構成該單元的索引;
[0015] (2)用鼠標在屏幕上畫任意曲線,得到屏幕上二維坐標點的集合,用RBF方法構 建方程,這個方程代表了上一步畫的曲線,求三維有限元數(shù)據(jù)的所有點在該方程下的值,其 中值為正代表在曲線上方,值為負代表在曲線下方,值為零的點為切點,遍歷有限元所有單 元,插值生成所有離散的切點,把這些離散的切點進行三角化,生成曲面剖面。
[0016] 利用任意曲線上的點構建完成插值方程之后,發(fā)現(xiàn)對有限元單元進行任意曲面剖 分只可能存在三種情況,曲線上方的點、曲線下方的點和位于曲線上的點。因此,本發(fā)明 將RBF插值函數(shù)應用到了有限元剖分中,將用戶在屏幕上畫出的任意曲線進行插值方程構 建,通過有限元網(wǎng)絡模型與方程的位置關系來完成有限元網(wǎng)格的曲面剖分,從而使得剖 分效率大幅提高,簡化了交互過程,提升了視覺效果,同時這種新方法不但可以完成曲面剖 分,更可以輕松實現(xiàn)平面剖分。
[0017] 優(yōu)選地,如圖2所示,所述步驟(1)中有限元的單元是六面體單元,該單元具有8 個點。
[0018] 優(yōu)選地,在所述步驟(2)包括以下分步驟:
[0019] (2· 1)根據(jù)公式(2)-⑷構建RBF插值函數(shù)
[0023] 其中C1表示了約束集合中的編號為i的點的坐標,1彡i彡k代表了 1~K范圍 下的點的編號,4,4,技分別代表了約束集合中編號為K的點的x,y,z分量坐標,Φ(χ) =I X 12Iog (I X I)代表了徑向基函數(shù),其中X = Cl-C]代表了 c P (^兩點之間的距離,那么Φ lk 也就代表了編號為i的點與編號為k的點之間的歐氏距離,h1= f(c J代表了編號為i的 坐標點的函數(shù)值,d,表示權重,P(X)是關于線性常量f的一次多項式。構建插值方程的過 程可以理解為,已知約束集合所有點的坐標C 1、每兩個點的徑向基函數(shù)Olk和函數(shù)值h i,來 求未知變量即權重Clj和一次多項式P(X)的過程;
[0024] (2. 2)對三維模型做坐標變換,把模型坐標系變換到屏幕坐標系下,然后將變換后 的屏幕坐標系下的值帶入插值函數(shù)求解;
[0025] (2. 3)對于每一個六面體單元,遍歷12條邊,如果一條邊上的兩端點的函數(shù)值的 乘積是小于0的,那么這條邊上的兩個點,一個位于曲線的上方,一個位于曲線的下方,該 條邊上有切點,且切點對于插值函數(shù)的函數(shù)值為0 ;得到這條邊上兩個端點的坐標pos。、 POS。,函數(shù)值v。、V1,得到切點位置與這條邊的比例系數(shù)u
[0027] 之后插值生成切點的坐標POS
[0028] pos = POS0^(I-U)=IiPOS1-U (6);
[0029] (2. 4)對切點進行三角網(wǎng)格化;
[0030] (2. 5)將所有三角化的圖元連接在一起,將圖元數(shù)據(jù)、切點連接關系的信息從CPU 傳輸?shù)紾PU端,繼而生成剖面。
[0031] 優(yōu)選地,在所述步驟(2. 4)中,對于切割后得到五邊形的條件是切點滿足:①一條 棱上的點;②與該棱平行的兩條棱上的點;③與該棱垂直面上的與之不相交的棱的兩條棱 的中點。
[0032] 優(yōu)選地,在所述步驟(2. 4)中,對于切割后得到六邊形的條件是切點滿足:①先取 一個頂點引出的三條棱除了豎棱外的另外兩條棱的中點;②與①中兩條棱其分別相交的兩 條棱的中點;③與①中兩條棱的平行面上的平行棱且任意兩條棱不通過另一條棱相連接的 兩條棱的中點。
[0033] 優(yōu)選地,在所述步驟(2.4)中采用了哈希圖的方法來確定棱上的切點三角化后下 一個切點是位于哪條棱上。
[0034] 如圖1所示,現(xiàn)在給出一個本發(fā)明的詳細實施例。
[0035] 1.有限元數(shù)據(jù)的預處理
[0036] -般來講,有限元數(shù)據(jù)可以理解成采樣點數(shù)據(jù)的空間網(wǎng)格,這些數(shù)據(jù)包括了屬性 數(shù)據(jù)和網(wǎng)格的拓撲結構(有限元單元),比較常用的有限元單元就是六面體單元。
[0037] 數(shù)據(jù)讀入過程是建立節(jié)點與單元關系的過程,每個節(jié)點都有自己的編號ID,X,Y,Z 坐標,屬于哪些單元(拓撲結構)。此外,每個單元也會記錄下自己的編號ID,組成該單元 的8個點的編號,單元材質,單元類型等信息。這個過程建立完成后,就可以得到一個節(jié)點 表,可一個單元表。節(jié)點表中有節(jié)點的所有信息和所屬單元的索引列表,而單元表中有單元 的所有信息和8個構成該單元的索引。
[0038] 2.基于RBF插值函數(shù)網(wǎng)格剖分優(yōu)化算法
[0039] 該算法的主要流程如圖1所示。在對有限元數(shù)據(jù)預處理之后,我們采用了一種簡 便快捷的交互方式。通過這個過程,可以得到屏幕上二維坐標點的集合,該集合為下文即將 要提到的平滑函數(shù)提供必要的輸入。之后,用RBF方法構建方程,這個方程代表了上一步畫 的曲線。接著,求三維有限元數(shù)據(jù)的所有點在該方程下的值,其中值為正代表在曲線上方, 值為負代表在曲線下方,值為零的點恰好為切點。然后,遍歷有限元所有單元,插值生成所 有離散的切點。繼而,把這些離散的切點進行三角化。最終生成曲面剖面。
[0040] 2. 1構建RBF插值函數(shù)
[0041] 該算法中的核心就是求得平滑函數(shù),對于二維離散點的情況,把這個插值過程描 述為,給定包含K個不同點的集合{ Cl,C2,…ck}和對應的K個實數(shù)集合O^h2,…h(huán) k},找到 一個平滑的函數(shù)f (X),這個函數(shù)滿足f (Ci) = hi, 1彡i彡k。
[0042] 為了要解決這個問題,首先定義一個可以匹配所有給定數(shù)據(jù)點的單一函數(shù),然后 定義一個可以限制插值函數(shù)的能量方程E,其中能量方程E可以寫成:
[0044] 最小化方程(1)。其中符號浩⑷表示在X方向上的二次偏導數(shù),符號后辦)表示在 X方向和y方向的混合二次偏導數(shù),符號/Λ(χ)表示在y方向上的二次偏導數(shù)。其中的能量 方程可以理解成為區(qū)域Ω上的f( x)的平方曲率和函數(shù)。那么該問題的目標就是,找到一 個f(x)既可