專利名稱:包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種有限元網(wǎng) 格剖分方法,尤其是涉及一種包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法。
背景技術(shù):
有限元計(jì)算過(guò)程中,實(shí)現(xiàn)網(wǎng)格的全自動(dòng)劃分,一直是有限元前處理網(wǎng)格劃分的目標(biāo)。隨著網(wǎng)格劃分技術(shù)的進(jìn)步,傳統(tǒng)的通過(guò)單個(gè)構(gòu)件網(wǎng)格剖分,然后用命令流方式,修改節(jié)點(diǎn)和單元,直到符合有限元前處理數(shù)據(jù)的方法,由于其對(duì)結(jié)構(gòu)分析人員理論要求高,且修改網(wǎng)格容易出錯(cuò)導(dǎo)致影響計(jì)算結(jié)果,將逐漸被全自動(dòng)網(wǎng)格方法所代替。2008年海軍工程大學(xué)的古成中、吳新躍在《有限元網(wǎng)格劃分及發(fā)展趨勢(shì)》一文中,總結(jié)了有限元網(wǎng)格劃分技術(shù)發(fā)展?fàn)顩r,展望了有限元網(wǎng)格劃分的趨勢(shì),其中明確提到了網(wǎng)格劃分的全自動(dòng)化和智能化趨勢(shì)。2003年計(jì)算力學(xué)學(xué)報(bào),關(guān)振群,隋曉峰發(fā)表文章《復(fù)雜三維組合曲面的有限元網(wǎng)格生成方法》,還有其他很多文章或軟件,都在研究或嘗試如何有效解決有限元網(wǎng)格的自動(dòng)劃分問(wèn)題,有些也給出了單個(gè)構(gòu)件或一兩種組合情況下的解決辦法,但都沒(méi)有給出一個(gè)能夠模擬復(fù)雜模型的,包含多種構(gòu)件的三維有限元網(wǎng)格劃分技術(shù)方案。其主要原因是,第一,很難從幾何算法上解決三維多種構(gòu)件情況下的重疊、交叉、嵌入的求交;第二,涉及到曲面和實(shí)體網(wǎng)格剖分均要實(shí)現(xiàn)約束自適應(yīng)網(wǎng)格算法,對(duì)網(wǎng)格劃分算法要求高;第三,需要建立新的拓?fù)潢P(guān)系的辦法,即解決構(gòu)件之間存在交叉或重疊時(shí),節(jié)點(diǎn)耦合問(wèn)題的技術(shù)方案;以上條件須同時(shí)具備才有可能實(shí)現(xiàn)模擬復(fù)雜模型下的網(wǎng)格全自動(dòng)化。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種剖分誤差小,效率高的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法。本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,包括以下步驟(I)獲取前處理對(duì)象的幾何信息和網(wǎng)格控制參數(shù);(2)按體、面、線、點(diǎn)對(duì)前處理對(duì)象進(jìn)行分類網(wǎng)格化,建立初始網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(3)求交并打斷所有網(wǎng)格對(duì)象,更新網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(4)按體、面、線、點(diǎn)的網(wǎng)格化順序依次剖分所有葉子節(jié)點(diǎn)網(wǎng)格對(duì)象;(5)根據(jù)構(gòu)件的前處理對(duì)象和其拓?fù)潢P(guān)系填充單元分組;(6)設(shè)置單元分組的有限元屬性,該有限元屬性與構(gòu)件的前處理對(duì)象相同;(7)存儲(chǔ)并輸出網(wǎng)格自動(dòng)首Ij分結(jié)果。所述的步驟(3)的具體步驟如下(301)創(chuàng)建求交器,初始化求交器數(shù)據(jù),添加整體控制參數(shù)和總施工步數(shù);(302)初始化體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組;
(303)將所有輸入的網(wǎng)格對(duì)象的拓?fù)鋽?shù)據(jù)進(jìn)行分類,分別存放在四個(gè)拓?fù)錁?shù)數(shù)組中;(304)體與體求交遍歷所有網(wǎng)格體進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格體之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(305)體與面求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行體面兩兩相交計(jì)算,保存所述的網(wǎng)格體和面對(duì)像之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(306)面與面求交遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格面之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(307)整理體中的子面遍歷所有的網(wǎng)格體,獲取每個(gè)網(wǎng)格體中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(308)整理面中的子面遍歷所有的網(wǎng)格面,獲取每個(gè)網(wǎng)格面中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(309)線與體求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行體線兩兩相交計(jì)算,保存所述的網(wǎng)格體和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(310)線與面求交遍歷所有的網(wǎng)格面和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行面線兩兩相交計(jì)算,保存所述的網(wǎng)格面和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(311)提取底層面的邊框線遍歷所有的面對(duì)像,提取面對(duì)像中所有底層面的邊框線,將該邊框線創(chuàng)建成網(wǎng)格線,并建立所述網(wǎng)格線與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(312)線與線求交遍歷所有網(wǎng)格線,將所述的網(wǎng)格線兩兩相交計(jì)算,打斷生成相互之間不存在重疊的子線,并將該子線創(chuàng)建成新的網(wǎng)格線,并與生成該子線的網(wǎng)格線建立拓?fù)潢P(guān)系;(313)整理體中的子線遍歷所有網(wǎng)格體,獲取網(wǎng)格體在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若所述的子線不是底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后對(duì)網(wǎng)格體內(nèi)所有的子面進(jìn)行遍歷,判斷所述的子線是否有在所述的子面上,若為是,則將所述的子線添加到對(duì)應(yīng)的子面中,作為該子面的子線,并刪除所述子線與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(314)整理面中的子線遍歷所有網(wǎng)格面,獲取網(wǎng)格面在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若子線不是關(guān)系樹(shù)中的底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后判斷當(dāng)前的網(wǎng)格面是否為底層面,若為否,則獲取該面對(duì)像的所有底層面,再分別遍歷每個(gè)面對(duì)像獲得的底層線,判斷所述的底層線是否在底層面上,若為是,則將所述的底層線添加到該底層線所在的底層面內(nèi),并刪除所述底層線與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系;(315)整理線中的子線遍歷所有網(wǎng)格線,獲取每個(gè)有前處理對(duì)象引用的網(wǎng)格線,將該網(wǎng)格線在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)中對(duì)應(yīng)的所有的子線替換成底層線;(316)整理體中的子點(diǎn)遍歷所有的網(wǎng)格體中的子面和子點(diǎn),判斷所述的子點(diǎn)是否在所述的子面上,若為是,則將所述的子點(diǎn)添加到其所在的子面上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(317)整理面中的子點(diǎn)遍歷所有的網(wǎng)格面,若網(wǎng)格面不是底層面,則獲取該面對(duì)像的底層面,判斷的所述面對(duì)像上的子點(diǎn)是否在底層面上,若為是,則將所述的子點(diǎn)添加到其所在的底層面上去,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系,然后重新遍歷所有面底層,獲得底層面上的子線和子點(diǎn),判斷子點(diǎn)是否在子線上,若為是,則將所述的子點(diǎn)添加到所在的子線上,并刪除所述子點(diǎn)與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(318)整理線中的子點(diǎn)遍歷所有的網(wǎng)格線,如果網(wǎng)格線不是底層線,則獲取所述網(wǎng)格線的底層線,判斷網(wǎng)格線的子點(diǎn)是否在底層線上,若為是,則所述的子添加到其所在的底層線上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格線的拓?fù)潢P(guān)系,然后重新遍歷所有底層線,獲得底層線上的所有子點(diǎn),將所述組子點(diǎn)按其在曲線上的u參數(shù)排序、去重,并剔除與底層線端點(diǎn)重置的子點(diǎn);(319)添加邊界條件關(guān)鍵點(diǎn)遍歷所有輸入的邊界條件的關(guān)鍵點(diǎn),將其創(chuàng)建成幾何拓?fù)潼c(diǎn),添加到點(diǎn)拓?fù)錁?shù)數(shù)組中;(320)整理所有點(diǎn)獲取所有網(wǎng)格對(duì)象的關(guān)鍵點(diǎn)數(shù)據(jù),同時(shí)記錄相關(guān)映射信息,對(duì)所有關(guān)鍵點(diǎn)數(shù)據(jù)進(jìn)行坐標(biāo)排序、去重,然后遍歷去重后的關(guān)鍵點(diǎn)數(shù)據(jù),將每一個(gè)關(guān)鍵點(diǎn)創(chuàng)建成拓?fù)潼c(diǎn),通過(guò)映射表中的信息,將拓?fù)潼c(diǎn)的引用回填到相應(yīng)的網(wǎng)格對(duì)象中并建立拓?fù)潢P(guān)系;(321)整理孤立點(diǎn)判斷孤立點(diǎn)是否與求交生成的交點(diǎn)重疊,若為是,則不需要再建立拓?fù)潢P(guān)系,若為否,則判斷所述孤立點(diǎn)是否位于參與剖分的網(wǎng)格對(duì)象上,若為是,則與對(duì)應(yīng)的網(wǎng)格對(duì)象建立拓?fù)潢P(guān)系;(322)輸出數(shù)據(jù)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,將網(wǎng)格對(duì)象標(biāo)記為可導(dǎo)出,然后遍歷所述網(wǎng)格對(duì)象的所有子對(duì)象,并標(biāo)記為可導(dǎo)出,將標(biāo)記為可導(dǎo)出的網(wǎng)格對(duì)象分類,并分別導(dǎo)出到對(duì)應(yīng)的拓?fù)錁?shù)數(shù)組重,刪除未標(biāo)記為可導(dǎo)出的對(duì)象數(shù)據(jù)。所述的步驟(4)的具體步驟如下(41)初始化成員變量,清空結(jié)果數(shù)據(jù),保存體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組和整體控制參數(shù);(42)遍歷所有的網(wǎng)格體,判斷所述的網(wǎng)格體是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),調(diào)用體剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格體進(jìn)行剖分;(43)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,判斷所述的網(wǎng)格面是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格面是否存在子面,若存在子面,遍歷網(wǎng)格面的所有參與剖分的子面,調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)子面進(jìn)行剖分,若不存在子面,則調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格面進(jìn)行剖分;(44)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格線,判斷所述的網(wǎng)格線是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格線是否存在子線,若存在子線,遍歷網(wǎng)格線的所有 參與剖分的子線,調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)子線進(jìn)行剖分,若不存在子線,則調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格線進(jìn)行剖分;(45)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格點(diǎn),判斷所述的網(wǎng)格點(diǎn)是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整點(diǎn)控制參數(shù)作為剖分控制參數(shù),調(diào)用點(diǎn)剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格點(diǎn)進(jìn)行剖分。所述的步驟(5)的具體步驟如下(51)初始化填充器,清空節(jié)點(diǎn)、單元數(shù)據(jù);(52)將輸入的節(jié)點(diǎn)數(shù)據(jù)直接保存為導(dǎo)出的節(jié)點(diǎn)數(shù)據(jù); (53)遍歷所有網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,提取其所有葉子節(jié)點(diǎn)剖分后所生成的單元數(shù)據(jù),將這些單元數(shù)據(jù)存放到當(dāng)前的單元組內(nèi)。其中,網(wǎng)格對(duì)象(Mesh_0bject):—種描述網(wǎng)格化幾何拓?fù)潢P(guān)系的基類,在求交打斷以及剖分過(guò)程中起著提供幾何的作用。網(wǎng)格點(diǎn)(Mesh_Point):派生于網(wǎng)格對(duì)象,描述網(wǎng)格化的幾何拓?fù)潼c(diǎn)。網(wǎng)格線(Mesh_Edge):派生于網(wǎng)格對(duì)象,描述網(wǎng)格化的幾何拓?fù)溥?。網(wǎng)格面(Mesh_Face):派生于網(wǎng)格對(duì)象,描述網(wǎng)格化的幾何拓?fù)涿?。網(wǎng)格體(Mesh_Solid):派生于網(wǎng)格對(duì)象,描述網(wǎng)格化的幾何拓?fù)鋵?shí)體。剖分對(duì)象收集器(MeshObjectCollector):用于收集參與剖分的前處理對(duì)象,并對(duì)這些對(duì)象進(jìn)行初步處理,原幾何線框、殼、復(fù)合實(shí)體等將幾何分解歸類外網(wǎng)格對(duì)象的四種子類型對(duì)象。剖分對(duì)象求交器(MeshObjectIntersector):對(duì)網(wǎng)格對(duì)象進(jìn)行相交與重疊計(jì)算,獲取幾何的公共部分,重新建立網(wǎng)格對(duì)象拓?fù)浣Y(jié)構(gòu),同時(shí)對(duì)部分輸入?yún)?shù)如施工工況和邊界條件進(jìn)行處理。網(wǎng)格剖分器(MeshGen):對(duì)求交器處理過(guò)的網(wǎng)格對(duì)象幾何拓?fù)浣Y(jié)構(gòu)進(jìn)行網(wǎng)格化處理,處理網(wǎng)格控制參數(shù)等數(shù)據(jù),生成初步的網(wǎng)格節(jié)點(diǎn)和單元數(shù)據(jù)。網(wǎng)格填充器(MeshFiller):對(duì)初始網(wǎng)格節(jié)點(diǎn)和單元進(jìn)行處理,如排序、分組和單元復(fù)制等,生成與構(gòu)件相關(guān)的網(wǎng)格數(shù)據(jù)組織。所述的步驟⑵中,網(wǎng)格對(duì)象使用的是Brep(邊界表示法),造型算法采用的是OpenCASCADE開(kāi)源幾何庫(kù),原始幾何類型有頂點(diǎn)(Vertex)、邊(Edge)、線框(Wire)、面(Face)、殼(Shell)、實(shí)體(Solid)、復(fù)合體(Compound)七種,在此分解轉(zhuǎn)換為網(wǎng)格點(diǎn)(Mesh_Point)、網(wǎng)格線(Mesh_Edge)、網(wǎng)格面(Mesh_Face)、網(wǎng)格體(Mesh_Solid)四種類型,主要是將線框分解為網(wǎng)格線集合,殼分解為網(wǎng)格面集合,復(fù)合體分解為四種或四種以下的的網(wǎng)格對(duì)象的集合。網(wǎng)格對(duì)象的表示采用Br印邊界表示法,造型算法使用OpenCASCADE開(kāi)源幾何庫(kù)。網(wǎng)格面的剖分采用推進(jìn)波前法,網(wǎng)格體的剖分采用約束的Delaunay四面體網(wǎng)格算法。與現(xiàn)有技術(shù)相比,本發(fā)明改變了有限元前處理建模流程,復(fù)雜的結(jié)構(gòu)分析不再需要用戶參與修改節(jié)點(diǎn)和單元,有限元參數(shù)設(shè)置均在可視化的三維幾何構(gòu)件上完成,易于學(xué)習(xí)和掌握,有效降低學(xué)習(xí)和使用有限元進(jìn)行結(jié)構(gòu)分析的成本,同時(shí)由于網(wǎng)格剖分不需要用戶參與,節(jié)約了有限元建模的時(shí)間,并且減少了由于用戶操作網(wǎng)格造成的誤差或失誤,從而避免由此帶來(lái)的計(jì)算結(jié)果問(wèn)題,為煩雜細(xì)致的有限元前處理建模提供了一種高效而簡(jiǎn)潔的方法。
圖I為本發(fā)明的流程圖;圖2為本發(fā)明中更新網(wǎng)格對(duì)象的拓?fù)潢P(guān)系樹(shù)的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例如圖I所示,包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,包括以下步驟步驟1,定義網(wǎng)格對(duì)象數(shù)據(jù)結(jié)構(gòu)(Mesh_0bject)及其四個(gè)子類型,網(wǎng)格點(diǎn)(Mesh_Point),網(wǎng)格線(Mesh_Edge),網(wǎng)格面(Mesh_Face),網(wǎng)格體(Mesh_Solid);其基類型包含四個(gè)子類型的對(duì)象數(shù)組,用于建立網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)。步驟2,收集前處理對(duì)象的有限元屬性和網(wǎng)格控制參數(shù),使用原始幾何數(shù)據(jù),初始化網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù),網(wǎng)格對(duì)象的表示采用Brep邊界表示法,造型算法使用OpenCASCADE開(kāi)源幾何庫(kù)。步驟3,對(duì)網(wǎng)格對(duì)象進(jìn)行求交和打斷,更新網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);步驟4,按體、面、線、點(diǎn)的網(wǎng)格化順序依次剖分所有葉子節(jié)點(diǎn)網(wǎng)格對(duì)象,曲面網(wǎng)格適合采用推進(jìn)波前法(Advancing Front Technique, AFT),實(shí)體網(wǎng)格剖分適合采用約束的Delaunay四面體網(wǎng)格算法;步驟5,將剖分器提供的原始網(wǎng)格數(shù)據(jù)依據(jù)網(wǎng)格對(duì)象的拓?fù)潢P(guān)系填充和重新整理,根據(jù)構(gòu)件的前處理對(duì)象和其拓?fù)潢P(guān)系填充單元分組;步驟6,依據(jù)網(wǎng)格組對(duì)應(yīng)的前處理對(duì)象屬性,設(shè)置網(wǎng)格組屬性信息,包含施工過(guò)程、邊界條件、材料屬性;步驟7,保存并輸出結(jié)果。其中,所述的步驟3的具體步驟如圖2所示,包括(301)創(chuàng)建求交器,初始化求交器數(shù)據(jù),添加整體控制參數(shù)和總施工步數(shù);(302)初始化體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組;(303)將所有輸入的網(wǎng)格對(duì)象的拓?fù)鋽?shù)據(jù)進(jìn)行分類,分別存放在四個(gè)拓?fù)錁?shù)數(shù)組中;(304)體與體求交遍歷所有網(wǎng)格體進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格體之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系,在網(wǎng)格化之前的模型檢查保證體對(duì)象之間不存在相
互嵌套。(305)體與面求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行體面兩兩相交計(jì)算,保存所述的網(wǎng)格體和面對(duì)像之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(306)面與面求交遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格面之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(307)整理體中的子面遍歷所有的網(wǎng)格體,獲取每個(gè)網(wǎng)格體中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(308)整理面中的子面遍歷所有的網(wǎng)格面,獲取每個(gè)網(wǎng)格面中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(309)線與體求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行體線兩兩相交計(jì)算,保存所述的網(wǎng)格體和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(310)線與面求交遍歷所有的網(wǎng)格面和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行面線兩兩相交計(jì)算,保存所述的網(wǎng)格面和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(311)提取底層面的邊框線遍歷所有的面對(duì)像,提取面對(duì)像中所有底層面的邊框線,將該邊框線創(chuàng)建成網(wǎng)格線,并建立所述網(wǎng)格線與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(312)線與線求交遍歷所有網(wǎng)格線,將所述的網(wǎng)格線兩兩相交計(jì)算,打斷生成相互之間不存在重疊的子線,并將該子線創(chuàng)建成新的網(wǎng)格線,并與生成該子線的網(wǎng)格線建立拓?fù)潢P(guān)系;(313)整理體中的子線遍歷所有網(wǎng)格體,獲取網(wǎng)格體在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若所述的子線不是底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后對(duì)網(wǎng)格體內(nèi)所有的子面進(jìn)行遍歷,判斷所述的子線是否有在所述的子面上,若為是,則將所述的子線添加到對(duì)應(yīng)的子面中,作為該子面的子線,并刪除所述子線與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(314)整理面中的子線遍歷所有網(wǎng)格面,獲取網(wǎng)格面在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若子線不是關(guān)系樹(shù)中的底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后判斷當(dāng)前的網(wǎng)格面是否為底層面,若為否,則獲取該面對(duì)像的所有底層面,再分別遍歷每個(gè)面對(duì)像獲得的底層線,判斷所述的底層線是否在底層面上,若為是,則將所述的底層線添加到該底層線所在的底層面內(nèi),并刪除所述底層線與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系;(315)整理線中的子線遍歷所有網(wǎng)格線,獲取每個(gè)有前處理對(duì)象引用的網(wǎng)格線,將該網(wǎng)格線在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)中對(duì)應(yīng)的所有的子線替換成底層線;(316)整理體中的子點(diǎn)遍歷所有的網(wǎng)格體中的子面和子點(diǎn),判斷所述的子點(diǎn)是否在所述的子面上,若為是,則將所述的子點(diǎn)添加到其所在的子面上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(317)整理面中的子點(diǎn)遍歷所有的網(wǎng)格面,若網(wǎng)格面不是底層面,則獲取該面對(duì)像的底層面,判斷的所述面對(duì)像上的子點(diǎn)是否在底層面上,若為是,則將所述的子點(diǎn)添加到其所在的底層面上去,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系,然后重新遍歷所有面底層,獲得底層面上的子線和子點(diǎn),判斷子點(diǎn)是否在子線上,若為是,則將所述的子點(diǎn)添加到所在的子線上,并刪除所述子點(diǎn)與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(318)整理線中的子點(diǎn)遍歷所有的網(wǎng)格線,如果網(wǎng)格線不是底層線,則獲取所述網(wǎng)格線的底層線,判斷網(wǎng)格線的子點(diǎn)是否在底層線上,若為是,則所述的子添加到其所在的 底層線上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格線的拓?fù)潢P(guān)系,然后重新遍歷所有底層線,獲得底層線上的所有子點(diǎn),將所述組子點(diǎn)按其在曲線上的u參數(shù)排序、去重,并剔除與底層線端點(diǎn)重置的子點(diǎn); (319)添加邊界條件關(guān)鍵點(diǎn)遍歷所有輸入的邊界條件的關(guān)鍵點(diǎn),將其創(chuàng)建成幾何拓?fù)潼c(diǎn),添加到點(diǎn)拓?fù)錁?shù)數(shù)組中;(320)整理所有點(diǎn)獲取所有網(wǎng)格對(duì)象的關(guān)鍵點(diǎn)數(shù)據(jù),同時(shí)記錄相關(guān)映射信息,對(duì)所有關(guān)鍵點(diǎn)數(shù)據(jù)進(jìn)行坐標(biāo)排序、去重,然后遍歷去重后的關(guān)鍵點(diǎn)數(shù)據(jù),將每一個(gè)關(guān)鍵點(diǎn)創(chuàng)建成拓?fù)潼c(diǎn),通過(guò)映射表中的信息,將拓?fù)潼c(diǎn)的引用回填到相應(yīng)的網(wǎng)格對(duì)象中并建立拓?fù)潢P(guān)系;(321)整理孤立點(diǎn)判斷孤立點(diǎn)是否與求交生成的交點(diǎn)重疊,若為是,則不需要再建立拓?fù)潢P(guān)系,若為否,則判斷所述孤立點(diǎn)是否位于參與剖分的網(wǎng)格對(duì)象上,若為是,則與對(duì)應(yīng)的網(wǎng)格對(duì)象建立拓?fù)潢P(guān)系;(322)輸出數(shù)據(jù)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,將網(wǎng)格對(duì)象標(biāo)記為可導(dǎo)出,然后遍歷所述網(wǎng)格對(duì)象的所有子對(duì)象,并標(biāo)記為可導(dǎo)出,將標(biāo)記為可導(dǎo)出的網(wǎng)格對(duì)象分類,并分別導(dǎo)出到對(duì)應(yīng)的拓?fù)錁?shù)數(shù)組重,刪除未標(biāo)記為可導(dǎo)出的對(duì)象數(shù)據(jù)。所述的步驟(4)的具體步驟如下(41)初始化成員變量,清空結(jié)果數(shù)據(jù),保存體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組和整體控制參數(shù);(42)遍歷所有的網(wǎng)格體,判斷所述的網(wǎng)格體是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),調(diào)用體剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格體進(jìn)行剖分;(43)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,判斷所述的網(wǎng)格面是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格面是否存在子面,若存在子面,遍歷網(wǎng)格面的所有參與剖分的子面,調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)子面進(jìn)行剖分,若不存在子面,則調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格面進(jìn)行剖分;(44)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格線,判斷所述的網(wǎng)格線是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格線是否存在子線,若存在子線,遍歷網(wǎng)格線的所有參與剖分的子線,調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)子線進(jìn)行剖分,若不存在子線,則調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格線進(jìn)行剖分;(45)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格點(diǎn),判斷所述的網(wǎng)格點(diǎn)是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整點(diǎn)控制參數(shù)作為剖分控制參數(shù),調(diào)用點(diǎn)剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格點(diǎn)進(jìn)行剖分。所述的步驟(5)的具體步驟如下(51)初始化填充器,清空節(jié)點(diǎn)、單元數(shù)據(jù);(52)將輸入的節(jié)點(diǎn)數(shù)據(jù)直接保存為導(dǎo)出的節(jié)點(diǎn)數(shù)據(jù);(53)遍歷所有網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,提取其所有葉子節(jié)點(diǎn)剖分后所生成的單元數(shù)據(jù),將這些單元數(shù)據(jù)存放到當(dāng)前的單元組內(nèi)。本發(fā)明改變了有限元前處理建模流程,復(fù)雜的結(jié)構(gòu)分析不再需要用戶參與修改節(jié)點(diǎn)和單元,有限元參數(shù)設(shè)置均在可視化的三維幾何構(gòu)件上完成,由于易于學(xué)習(xí)和掌握,有效降低學(xué)習(xí)和使用有限元進(jìn)行結(jié)構(gòu)分析的成本。同時(shí)由于網(wǎng)格不需要用戶參與,節(jié)約了有限元建模的時(shí)間,并且減少了由于用戶操作網(wǎng)格造成的誤差或失誤,從而避免由此帶來(lái)的計(jì)算結(jié)果問(wèn)題,為煩雜細(xì)致的有限元前處理 建模提供了一種高效而簡(jiǎn)潔的方法,并得到了令人滿意的效果。
權(quán)利要求
1.包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,包括以下步驟(1)獲取前處理對(duì)象的幾何信息和網(wǎng)格控制參數(shù);(2)按體、面、線、點(diǎn)對(duì)前處理對(duì)象進(jìn)行分類網(wǎng)格化,建立初始網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(3)求交并打斷所有網(wǎng)格對(duì)象,更新網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(4)按體、面、線、點(diǎn)的網(wǎng)格化順序依次剖分所有葉子節(jié)點(diǎn)網(wǎng)格對(duì)象;(5)根據(jù)構(gòu)件的前處理對(duì)象和其拓?fù)潢P(guān)系填充單元分組;(6)設(shè)置單元分組的有限元屬性,該有限元屬性與構(gòu)件的前處理對(duì)象相同;(7)存儲(chǔ)并輸出網(wǎng)格自動(dòng)剖分結(jié)果。
2.根據(jù)權(quán)利要求I所述的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,所述的步驟(3)的具體步驟如下(301)創(chuàng)建求交器,初始化求交器數(shù)據(jù),添加整體控制參數(shù)和總施工步數(shù);(302)初始化體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組;(303)將所有輸入的網(wǎng)格對(duì)象的拓?fù)鋽?shù)據(jù)進(jìn)行分類,分別存放在四個(gè)拓?fù)錁?shù)數(shù)組中;(304)體與體求交遍歷所有網(wǎng)格體進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格體之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(305)體與面求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行體面兩兩相交計(jì)算,保存所述的網(wǎng)格體和面對(duì)像之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(306)面與面求交遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,進(jìn)行兩兩相交計(jì)算,保存網(wǎng)格面之間的公共面、公共線、公共點(diǎn),并建立拓?fù)潢P(guān)系;(307)整理體中的子面遍歷所有的網(wǎng)格體,獲取每個(gè)網(wǎng)格體中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(308)整理面中的子面遍歷所有的網(wǎng)格面,獲取每個(gè)網(wǎng)格面中所有的子面數(shù)據(jù),若所述的子面不是底層面,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層面進(jìn)行替換;(309)線與體求交遍歷所有的網(wǎng)格體和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行體線兩兩相交計(jì)算,保存所述的網(wǎng)格體和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(310)線與面求交遍歷所有的網(wǎng)格面和所有擁有前處理對(duì)象引用的網(wǎng)格線,進(jìn)行面線兩兩相交計(jì)算,保存所述的網(wǎng)格面和線對(duì)象之間的公共線、公共點(diǎn)并建立拓?fù)潢P(guān)系;(311)提取底層面的邊框線遍歷所有的面對(duì)像,提取面對(duì)像中所有底層面的邊框線, 將該邊框線創(chuàng)建成網(wǎng)格線,并建立所述網(wǎng)格線與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(312)線與線求交遍歷所有網(wǎng)格線,將所述的網(wǎng)格線兩兩相交計(jì)算,打斷生成相互之間不存在重疊的子線,并將該子線創(chuàng)建成新的網(wǎng)格線,并與生成該子線的網(wǎng)格線建立拓?fù)潢P(guān)系;(313)整理體中的子線遍歷所有網(wǎng)格體,獲取網(wǎng)格體在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若所述的子線不是底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后對(duì)網(wǎng)格體內(nèi)所有的子面進(jìn)行遍歷,判斷所述的子線是否有在所述的子面上,若為是,則將所述的子線添加到對(duì)應(yīng)的子面中,作為該子面的子線,并刪除所述子線與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(314)整理面中的子線遍歷所有網(wǎng)格面,獲取網(wǎng)格面在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)上對(duì)應(yīng)的所有子線數(shù)據(jù),若子線不是關(guān)系樹(shù)中的底層線,則通過(guò)網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)獲取對(duì)應(yīng)的底層線進(jìn)行替換,然后判斷當(dāng)前的網(wǎng)格面是否為底層面,若為否,則獲取該面對(duì)像的所有底層面,再分別遍歷每個(gè)面對(duì)像獲得的底層線,判斷所述的底層線是否在底層面上,若為是, 則將所述的底層線添加到該底層線所在的底層面內(nèi),并刪除所述底層線與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系; (315)整理線中的子線遍歷所有網(wǎng)格線,獲取每個(gè)有前處理對(duì)象引用的網(wǎng)格線,將該網(wǎng)格線在網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)中對(duì)應(yīng)的所有的子線替換成底層線;(316)整理體中的子點(diǎn)遍歷所有的網(wǎng)格體中的子面和子點(diǎn),判斷所述的子點(diǎn)是否在所述的子面上,若為是,則將所述的子點(diǎn)添加到其所在的子面上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格體的拓?fù)潢P(guān)系;(317)整理面中的子點(diǎn)遍歷所有的網(wǎng)格面,若網(wǎng)格面不是底層面,則獲取該面對(duì)像的底層面,判斷的所述面對(duì)像上的子點(diǎn)是否在底層面上,若為是,則將所述的子點(diǎn)添加到其所在的底層面上去,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格面的拓?fù)潢P(guān)系,然后重新遍歷所有面底層,獲得底層面上的子線和子點(diǎn),判斷子點(diǎn)是否在子線上,若為是,則將所述的子點(diǎn)添加到所在的子線上,并刪除所述子點(diǎn)與對(duì)應(yīng)底層面的拓?fù)潢P(guān)系;(318)整理線中的子點(diǎn)遍歷所有的網(wǎng)格線,如果網(wǎng)格線不是底層線,則獲取所述網(wǎng)格線的底層線,判斷網(wǎng)格線的子點(diǎn)是否在底層線上,若為是,則所述的子添加到其所在的底層線上,并刪除所述子點(diǎn)與對(duì)應(yīng)網(wǎng)格線的拓?fù)潢P(guān)系,然后重新遍歷所有底層線,獲得底層線上的所有子點(diǎn),將所述組子點(diǎn)按其在曲線上的u參數(shù)排序、去重,并剔除與底層線端點(diǎn)重疊的子點(diǎn);(319)添加邊界條件關(guān)鍵點(diǎn)遍歷所有輸入的邊界條件的關(guān)鍵點(diǎn),將其創(chuàng)建成幾何拓?fù)潼c(diǎn),添加到點(diǎn)拓?fù)錁?shù)數(shù)組中;(320)整理所有點(diǎn)獲取所有網(wǎng)格對(duì)象的關(guān)鍵點(diǎn)數(shù)據(jù),同時(shí)記錄相關(guān)映射信息,對(duì)所有關(guān)鍵點(diǎn)數(shù)據(jù)進(jìn)行坐標(biāo)排序、去重,然后遍歷去重后的關(guān)鍵點(diǎn)數(shù)據(jù),將每一個(gè)關(guān)鍵點(diǎn)創(chuàng)建成拓?fù)潼c(diǎn),通過(guò)映射表中的信息,將拓?fù)潼c(diǎn)的引用回填到相應(yīng)的網(wǎng)格對(duì)象中并建立拓?fù)潢P(guān)系;(321)整理孤立點(diǎn)判斷孤立點(diǎn)是否與求交生成的交點(diǎn)重疊,若為是,則不需要再建立拓?fù)潢P(guān)系,若為否,則判斷所述孤立點(diǎn)是否位于參與剖分的網(wǎng)格對(duì)象上,若為是,則與對(duì)應(yīng)的網(wǎng)格對(duì)象建立拓?fù)潢P(guān)系;(322)輸出數(shù)據(jù)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,將網(wǎng)格對(duì)象標(biāo)記為可導(dǎo)出,然后遍歷所述網(wǎng)格對(duì)象的所有子對(duì)象,并標(biāo)記為可導(dǎo)出,將標(biāo)記為可導(dǎo)出的網(wǎng)格對(duì)象分類,并分別導(dǎo)出到對(duì)應(yīng)的拓?fù)錁?shù)數(shù)組重,刪除未標(biāo)記為可導(dǎo)出的對(duì)象數(shù)據(jù)。
3.根據(jù)權(quán)利要求I所述的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,所述的步驟(4)的具體步驟如下(41)初始化成員變量,清空結(jié)果數(shù)據(jù),保存體、面、線、點(diǎn)四個(gè)拓?fù)錁?shù)數(shù)組和整體控制參數(shù);(42)遍歷所有的網(wǎng)格體,判斷所述的網(wǎng)格體是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),調(diào)用體剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格體進(jìn)行剖分;(43)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格面,判斷所述的網(wǎng)格面是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格面是否存在子面,若存在子面,遍歷網(wǎng)格面的所有參與剖分的子面,調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)子面進(jìn)行剖分,若不存在子面,則調(diào)用面剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格面進(jìn)行剖分;(44)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格線,判斷所述的網(wǎng)格線是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整體控制參數(shù)作為剖分控制參數(shù),然后判斷網(wǎng)格線是否存在子線,若存在子線,遍歷網(wǎng)格線的所有參與剖分的子線,調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)子線進(jìn)行剖分,若不存在子線,則調(diào)用線剖分器根據(jù)剖分控制參數(shù)對(duì)當(dāng)前的網(wǎng)格線進(jìn)行剖分;(45)遍歷所有擁有前處理對(duì)象引用的網(wǎng)格點(diǎn),判斷所述的網(wǎng)格點(diǎn)是否有自身的剖分控制參數(shù),若為是,則使用自身的剖分控制參數(shù),若為否,則使用整點(diǎn)控制參數(shù)作為剖分控制參數(shù),調(diào)用點(diǎn)剖分器根據(jù)剖分控制參數(shù)對(duì)網(wǎng)格點(diǎn)進(jìn)行剖分。
4.根據(jù)權(quán)利要求I所述的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,所述的步驟(5)的具體步驟如下(51)初始化填充器,清空節(jié)點(diǎn)、單元數(shù)據(jù);(52)將輸入的節(jié)點(diǎn)數(shù)據(jù)直接保存為導(dǎo)出的節(jié)點(diǎn)數(shù)據(jù);(53)遍歷所有網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù)頂層的網(wǎng)格對(duì)象,提取其所有葉子節(jié)點(diǎn)剖分后所生成的單元數(shù)據(jù),將這些單元數(shù)據(jù)存放到當(dāng)前的單元組內(nèi)。
5.根據(jù)權(quán)利要求I所述的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,網(wǎng)格對(duì)象的表示采用Brep邊界表示法,造型算法使用OpenCASCADE庫(kù)。
6.根據(jù)權(quán)利要求3所述的包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,其特征在于,網(wǎng)格面的剖分采用推進(jìn)波前法,網(wǎng)格體的剖分采用約束的Delaunay四面體網(wǎng)格算法。
全文摘要
本發(fā)明涉及一種包含多種構(gòu)件的三維有限元網(wǎng)格自動(dòng)剖分方法,包括以下步驟(1)獲取前處理對(duì)象的幾何信息和網(wǎng)格控制參數(shù);(2)按體、面、線、點(diǎn)對(duì)前處理對(duì)象進(jìn)行分類網(wǎng)格化,建立初始網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(3)求交并打斷所有網(wǎng)格對(duì)象,更新網(wǎng)格對(duì)象拓?fù)潢P(guān)系樹(shù);(4)按體、面、線、點(diǎn)的網(wǎng)格化順序依次剖分所有葉子節(jié)點(diǎn)網(wǎng)格對(duì)象;(5)根據(jù)構(gòu)件的前處理對(duì)象和其拓?fù)潢P(guān)系填充單元分組;(6)設(shè)置單元分組的有限元屬性,該有限元屬性與構(gòu)件的前處理對(duì)象相同;(7)存儲(chǔ)并輸出網(wǎng)格自動(dòng)剖分結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明具有剖分誤差小、效率高等優(yōu)點(diǎn)。
文檔編號(hào)G06F17/50GK102622467SQ201210036900
公開(kāi)日2012年8月1日 申請(qǐng)日期2012年2月17日 優(yōu)先權(quán)日2012年2月17日
發(fā)明者劉學(xué)增, 劉新根, 周德成, 張 杰, 朱合華, 蔡永昌, 齊磊 申請(qǐng)人:上海同巖土木工程科技有限公司