一種多階fdtd網(wǎng)格建模方法
【專利摘要】本發(fā)明公開了一種多階FDTD網(wǎng)格建模方法,基于商用軟件Hypermesh生成三角面元的模型,再對之處理生成多階精度FDTD網(wǎng)格。實現(xiàn)空間步長的自由選取,生成多階精度的FDTD網(wǎng)格,同時解決了多種介質(zhì)材料復(fù)雜模型的問題。最后通過CAD檢測生成的FDTD網(wǎng)格,檢驗建模結(jié)果的正確性。本發(fā)明能夠解決復(fù)雜目標(biāo)模型的FDTD建模問題,多種材料FDTD建模問題,以及細化特殊部件特征等問題。
【專利說明】
一種多階FDTD網(wǎng)格建模方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于電磁場數(shù)值計算領(lǐng)域,具體涉及一種三維建模技術(shù)。
【背景技術(shù)】
[0002]近年來隨著商用建模軟件的迅速發(fā)展,使得復(fù)雜模型的建模變得十分便利。但是用FDTD方法研究物體的電磁散射特性時,必須按照roTD要求進行網(wǎng)格化離散,即將roTD計算區(qū)域以六面體元胞(長方體)為單元進行剖分,并確定每個單元的介質(zhì)參數(shù)。
[0003]隨著roTD方法的廣泛采用,算法的不斷進步,對能夠進行復(fù)雜模型FDTD計算的需求越加強烈。普通的建模根據(jù)模型的解析式,只能生成簡單的模型,無法解決復(fù)雜模型的問題。因此非常有必要設(shè)計一種能夠解決多部件復(fù)雜模型的FDTD網(wǎng)格生成技術(shù)。
[0004]本發(fā)明在專利“一種生成roTD網(wǎng)格的方法”上改進,有著能夠生成多階FDTD網(wǎng)格,特殊部件采用更細小的I7DTD網(wǎng)格突出其物理特征,優(yōu)化多部件交接處細節(jié)特征,等諸多創(chuàng)新點。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種多階roTD網(wǎng)格建模方法,以解決復(fù)雜模型及多種材料FDTD建模問題。
[0006]為了解決以上技術(shù)問題,本發(fā)明設(shè)計建立一種復(fù)雜三角面元模型生成roTD網(wǎng)格技術(shù)?;谏逃密浖﨟ypermesh生成三角面元的模型,再對之進行處理生成三維roTD網(wǎng)格。實現(xiàn)空間步長的自由選取,生成不同規(guī)格的H)TD網(wǎng)格,同時解決了多種介質(zhì)材料復(fù)雜模型的問題:
[0007]一種多階roTD網(wǎng)格建模方法,其特征在于包括以下步驟:
[0008]步驟一,使用Hypermesh建模工具建模得Hypermesh模型,對Hypermesh模型進行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型數(shù)據(jù);
[0009]步驟二,處理stl格式三角面元模型數(shù)據(jù),保存stl格式三角面元模型數(shù)據(jù)中三維點坐標(biāo)數(shù)據(jù)以及部件起始行數(shù)據(jù);
[0010]步驟三,根據(jù)三維點坐標(biāo)數(shù)據(jù)以及部件起始行數(shù)據(jù),建立該部件roTD網(wǎng)格;
[0011]步驟四,組合多部件,生成最終roTD模型。
[0012]所述步驟一具體為:使用UG,CAD和Hypermesh商用建模軟件建模,再導(dǎo)入到Hypermesh中進行剖分;選擇edge deviat1n進行剖分,根據(jù)實際模型尺寸選擇最大最小三角面元尺寸,運行程序后根據(jù)模型的復(fù)雜程度自動選擇合適的尺寸進行剖分,最后導(dǎo)出stl格式三角面元模型數(shù)據(jù)。
[0013]所述步驟二具體包括以下過程:
[0014]過程3.1,讀取stl格式三角面元模型數(shù)據(jù)的總行數(shù);
[00?5]過程3.2,判斷stl格式三角面元模型數(shù)據(jù)中三維點坐標(biāo)所在的行數(shù)及三維點坐標(biāo)數(shù)據(jù)所在位置;
[0016]過程3.3,用Fortran語言讀取三維點坐標(biāo)所在行成字符串;
[0017]過程3.4,將過程3.3中所述的字符按照三維點坐標(biāo)數(shù)據(jù)所在的字符位置轉(zhuǎn)化成數(shù)據(jù)格式;
[0018]過程3.5,存儲三維點坐標(biāo)數(shù)據(jù)到文件中;
[0019]過程3.6,判斷多種部件所在的起始行數(shù);
[0020]過程3.7,根據(jù)三維點坐標(biāo)數(shù)據(jù)所有點三維方向上最大最小值判斷Hypermesh模型尺寸,基于用戶對三維FDTD網(wǎng)格大小的需求選取合適的空間步長。
[0021 ]所述步驟三建模過程將分為普通網(wǎng)格部件建模和細網(wǎng)格部件建模,具體包括以下過程:
[0022]過程4.1,根據(jù)部件起始行數(shù)據(jù)處理三維點坐標(biāo)數(shù)據(jù),讀取三維點坐標(biāo)數(shù)據(jù),創(chuàng)建3*3的矩陣代表一個三角面元片,創(chuàng)建一個循環(huán)按照每三行讀取一個三角面元數(shù)據(jù),存儲在臨時3*3的矩陣中;
[0023]過程4.2,根據(jù)三維點坐標(biāo)數(shù)據(jù)生成三維H)TD網(wǎng)格,若部件判斷為普通部件,則對其進行普通網(wǎng)格部件建模;對每個3*3的三角面元所對應(yīng)的矩陣,把三個點放在FDTD網(wǎng)格中,所需要計算的是根據(jù)步長的取整計算,即把三角面元的三個點放在三維H)TD網(wǎng)格的格點上;如果網(wǎng)格很粗或所取的步長很大的情況下,三角形的三個點都在一個網(wǎng)格內(nèi),就對這個網(wǎng)格賦值該部件的號碼;如果三角面元跨越了多個H)TD網(wǎng)格,則針對每個3*3的三角面元所對應(yīng)的矩陣得到根據(jù)步長取整的三個量化點,擴大成一個長方體,即可包含覆蓋不到的所有網(wǎng)格點,再對這些I7DTD網(wǎng)格點賦值部件號;若部件判斷為特殊部件,則對其進行細網(wǎng)格部件建模;將普通網(wǎng)格分割成8個細網(wǎng)格,對每個3*3的三角面元所對應(yīng)的矩陣,把三個點放在FDTD網(wǎng)格中,所需要計算的是根據(jù)步長的取半整計算,即在二分之一網(wǎng)格點處判定網(wǎng)格實點;記錄細網(wǎng)格部件信息方法是:部件號+網(wǎng)格類型+八個細網(wǎng)格信息,普通網(wǎng)格只記錄部件號;
[0024]過程4.3,對部件內(nèi)部補充實點,進行補點的處理時,每個部件只是一個空殼,內(nèi)部沒有點,采用的方法是針對每個空點,看它X正向反向,Y正向反向,Z正向反向有沒有點存在,一共六個方向的延伸,如果每個方向都存在點,那么這個點是在體內(nèi)部的,是存在的;具體的做法為:根據(jù)三維roTD網(wǎng)格數(shù)據(jù),依據(jù)它的格點存儲方式,讀出YZ坐標(biāo)與該點相同的所有點,得到一組數(shù)據(jù),并放在臨時的數(shù)組中,得到了 X正向反向上的點;同理Y和z方向也按照相同的方法得到另外兩組數(shù)組;在這三個數(shù)組里以該點為中心分別做循環(huán)往外延伸,如果碰到實點,做標(biāo)記;如果六個方向都標(biāo)記到,則可以判定該點也是實點,并對該點賦值所在部件號;
[0025]過程4.4,若stl格式三角面元模型存在多個部件則重復(fù)對每個部件進行上述過程4.1、4.2、4.3;部件I的部件號為I,部件二的部件號為2,依次類推。
[0026]所述步驟四具體包括以下過程:
[0027]將各部件整合成最終的三維H)TD網(wǎng)格,具體方法是:補點后計算該部件有多少個FDTD網(wǎng)格點,得到部件的大??;針對多部件,每個部件處理后都對應(yīng)一個H)TD網(wǎng)格文件,整合多個部件首先要生成空的模型大小FDTD網(wǎng)格,讓部件文件依次寫入,寫入每個實點過程需對其進行條件約束,具體約束條件如下:若最終FDTD網(wǎng)格文件中的點為空點,則可寫入;若最終roTD網(wǎng)格文件中的點為普通roTD網(wǎng)格點,現(xiàn)要寫入新部件普通roTD網(wǎng)格點,需要比較部件大小,取小部件寫入;若最終FDTD網(wǎng)格文件中的點為普通FDTD網(wǎng)格點,現(xiàn)要寫入細FDTD網(wǎng)格點,則該點處于部件交界處,寫入細roTD網(wǎng)格點,并讀取該點細roTD網(wǎng)格點信息,若細roTD網(wǎng)格點有空點,則賦值為原先點的部件號,并寫入;若最終roTD網(wǎng)格文件中的點為細FDTD網(wǎng)格點,現(xiàn)要寫入細roTD網(wǎng)格點,則該點處于部件交界處,比較部件大小,取小部件寫入,并讀取該點細roTD網(wǎng)格點信息,若細roTD網(wǎng)格點有空點,則賦值為原先點的部件號,并寫入;所有部件處理后,即得到最終的FDTD網(wǎng)格模型文件。
[0028]過程3.7根據(jù)所有點三維方向上最大最小值選取用戶自定的空間步長生成任意大小的FDTD網(wǎng)格。
[0029]步驟三能夠識別復(fù)雜模型開槽的情況,能夠根據(jù)部件類型選擇普通FDTD網(wǎng)格或細FDTD網(wǎng)格生成模型,優(yōu)化部件交界處的處理。
[0030]本發(fā)明能夠識別復(fù)雜模型開槽的情況,并對之進行處理。所述采用文件方式存儲讀取所有的數(shù)據(jù)和文件。一旦數(shù)據(jù)超過數(shù)組的極限,計算機內(nèi)存限制,就會溢出,就不能對復(fù)雜的模型進行三角面元處理。采用文件之間的讀寫,速度慢,但能滿足對大數(shù)據(jù)處理的需求。
[0031]本發(fā)明具有有益效果。本發(fā)明是通過Hypermesh商用建模軟件,把模型剖分成三角面元,再轉(zhuǎn)化成FDTD網(wǎng)格,能靈活建模,識別多種材料部件,優(yōu)化部件交接處的處理,突出特殊部件物理特征,識別開槽空腔等優(yōu)點。
【附圖說明】
[0032]圖1為三角面元在一個三維roTD網(wǎng)格內(nèi)情形;
[0033]圖2為三角面元在多個三維H)TD網(wǎng)格內(nèi)情形;
[0034]圖3為stl數(shù)據(jù)格式;
[0035]圖4為Hypermesh中球剖分成的三角面元圖;
[0036]圖5為Hypermesh中正方體剖分成的三角面元圖;
[0037]圖6為球三維H)TD網(wǎng)格通過CAD可視化檢測;
[0038]圖7為正方體三維H)TD網(wǎng)格通過CAD可視化檢測;
[0039]圖8為球殼多階H)TD網(wǎng)格通過CAD可視化檢測;
[0040]圖9為復(fù)雜模型三維H)TD網(wǎng)格通過CAD可視化檢測。
【具體實施方式】
[0041 ]下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步詳細說明。
[0042]如圖1所示,表示三角面元在一個H)TD網(wǎng)格中,在建模中,三角面元尺寸通常都很小,而roTD網(wǎng)格尺寸所取比較大,因此圖中的情形代表了大多三角面元和roTD網(wǎng)格的關(guān)系。在圖中,該FDTD網(wǎng)格賦值為三角面元所在部件的號碼。
[0043]如圖2所示,在圖中一個三角面元在兩個roTD網(wǎng)格中,這兩個FDTD網(wǎng)格賦值為三角面元所在部件的號碼。
[0044]如圖3所示,stl格式三角面元模型數(shù)據(jù)是每7行代表了一個三角面元,三個點坐標(biāo)均以vertex開始,讀取所在行成字符串,再根據(jù)數(shù)據(jù)所在的位置轉(zhuǎn)換為數(shù)據(jù)格式存在三維點坐標(biāo)數(shù)據(jù)中。同時每個部件以‘solid name’,‘endsolid’開始和結(jié)束,并記錄部件起始行數(shù)據(jù)。
[0045]如圖4所示,在Hypermesh中剖分球模型的三角面元圖,球半徑為lm。
[0046]如圖5所示,在Hypermesh中剖分正方體模型的三角面元圖,正方體邊長為2.5cm。
[0047 ]如圖6所示,采用本文所述方法,對圖4所示的球建模,生成三維!7DTD網(wǎng)格,通過CAD檢測正確性。
[0048]如圖7所示,采用本文所述方法,對圖5所示的正方體建模,生成三維FDTD網(wǎng)格,通過CAD檢測正確性。
[0049]如圖8所示,球殼部件使用細H)TD網(wǎng)格建模,內(nèi)部空腔使用普通FDTD網(wǎng)格建模,細化特殊部件球殼特征,圖為其橫截面圖。
[0050]如圖9所示,復(fù)雜開槽模型的三維roTD網(wǎng)格圖,通過CAD可視化檢測。
【主權(quán)項】
1.一種多階FDTD網(wǎng)格建模方法,其特征在于包括以下步驟: 步驟一,使用Hypermesh建模工具建模得Hypermesh模型,對Hypermesh模型進行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型數(shù)據(jù); 步驟二,處理stl格式三角面元模型數(shù)據(jù),保存stl格式三角面元模型數(shù)據(jù)中三維點坐標(biāo)數(shù)據(jù)以及部件起始行數(shù)據(jù); 步驟三,根據(jù)三維點坐標(biāo)數(shù)據(jù)以及部件起始行數(shù)據(jù),建立該部件FDTD網(wǎng)格; 步驟四,組合多部件,生成最終FDTD模型。2.根據(jù)權(quán)利要求1所述的一種多階H)TD網(wǎng)格建模方法,其特征在于所述步驟一具體為:使用UG,CAD和Hypermesh商用建模軟件建模,再導(dǎo)入到Hypermesh中進行剖分;選擇edgedeviat1n進行剖分,根據(jù)實際模型尺寸選擇最大最小三角面元尺寸,運行程序后根據(jù)模型的復(fù)雜程度自動選擇合適的尺寸進行剖分,最后導(dǎo)出stl格式三角面元模型數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的一種多階H)TD網(wǎng)格建模方法,其特征在于所述步驟二具體包括以下過程: 過程3.1,讀取stl格式三角面元模型數(shù)據(jù)的總行數(shù); 過程3.2,判斷stl格式三角面元模型數(shù)據(jù)中三維點坐標(biāo)所在的行數(shù)及三維點坐標(biāo)數(shù)據(jù)所在位置; 過程3.3,用Fortran語言讀取三維點坐標(biāo)所在行成字符串; 過程3.4,將過程3.3中所述的字符按照三維點坐標(biāo)數(shù)據(jù)所在的字符位置轉(zhuǎn)化成數(shù)據(jù)格式; 過程3.5,存儲三維點坐標(biāo)數(shù)據(jù)到文件中; 過程3.6,判斷多種部件所在的起始行數(shù); 過程3.7,根據(jù)三維點坐標(biāo)數(shù)據(jù)所有點三維方向上最大最小值判斷Hypermesh模型尺寸,基于用戶對三維FDTD網(wǎng)格大小的需求選取合適的空間步長。4.根據(jù)權(quán)利要求1所述的一種多階H)TD網(wǎng)格建模方法,其特征在于所述步驟三建模過程將分為普通網(wǎng)格部件建模和細網(wǎng)格部件建模,具體包括以下過程: 過程4.1,根據(jù)部件起始行數(shù)據(jù)處理三維點坐標(biāo)數(shù)據(jù),讀取三維點坐標(biāo)數(shù)據(jù),創(chuàng)建3*3的矩陣代表一個三角面元片,創(chuàng)建一個循環(huán)按照每三行讀取一個三角面元數(shù)據(jù),存儲在臨時.3*3的矩陣中; 過程4.2,根據(jù)三維點坐標(biāo)數(shù)據(jù)生成三維H)TD網(wǎng)格,若部件判斷為普通部件,則對其進行普通網(wǎng)格部件建模;對每個3*3的三角面元所對應(yīng)的矩陣,把三個點放在H)TD網(wǎng)格中,所需要計算的是根據(jù)步長的取整計算,即把三角面元的三個點放在三維FDTD網(wǎng)格的格點上;如果網(wǎng)格很粗或所取的步長很大的情況下,三角形的三個點都在一個網(wǎng)格內(nèi),就對這個網(wǎng)格賦值該部件的號碼;如果三角面元跨越了多個FDTD網(wǎng)格,則針對每個3*3的三角面元所對應(yīng)的矩陣得到根據(jù)步長取整的三個量化點,擴大成一個長方體,即可包含覆蓋不到的所有網(wǎng)格點,再對這些I7DTD網(wǎng)格點賦值部件號;若部件判斷為特殊部件,則對其進行細網(wǎng)格部件建模;將普通網(wǎng)格分割成8個細網(wǎng)格,對每個3*3的三角面元所對應(yīng)的矩陣,把三個點放在H)TD網(wǎng)格中,所需要計算的是根據(jù)步長的取半整計算,即在二分之一網(wǎng)格點處判定網(wǎng)格實點;記錄細網(wǎng)格部件信息方法是:部件號+網(wǎng)格類型+八個細網(wǎng)格信息,普通網(wǎng)格只記錄部件號; 過程4.3,對部件內(nèi)部補充實點,進行補點的處理時,每個部件只是一個空殼,內(nèi)部沒有點,采用的方法是針對每個空點,看它X正向反向,YE向反向7正向反向有沒有點存在,一共六個方向的延伸,如果每個方向都存在點,那么這個點是在體內(nèi)部的,是存在的;具體的做法為:根據(jù)三維roTD網(wǎng)格數(shù)據(jù),依據(jù)它的格點存儲方式,讀出Yz坐標(biāo)與該點相同的所有點,得到一組數(shù)據(jù),并放在臨時的數(shù)組中,得到了 X正向反向上的點;同理Y和z方向也按照相同的方法得到另外兩組數(shù)組;在這三個數(shù)組里以該點為中心分別做循環(huán)往外延伸,如果碰到實點,做標(biāo)記;如果六個方向都標(biāo)記到,則可以判定該點也是實點,并對該點賦值所在部件號; 過程4.4,若stI格式三角面元模型存在多個部件則重復(fù)對每個部件進行上述過程4.1、.4.2、4.3;部件I的部件號為I,部件二的部件號為2,依次類推。5.根據(jù)權(quán)利要求1所述的一種多階H)TD網(wǎng)格建模方法,其特征在于所述步驟四具體包括以下過程: 將各部件整合成最終的三維roTD網(wǎng)格,具體方法是:補點后計算該部件有多少個roTD網(wǎng)格點,得到部件的大小;針對多部件,每個部件處理后都對應(yīng)一個roTD網(wǎng)格文件,整合多個部件首先要生成空的模型大小roTD網(wǎng)格,讓部件文件依次寫入,寫入每個實點過程需對其進行條件約束,具體約束條件如下:若最終roTD網(wǎng)格文件中的點為空點,則可寫入;若最終FDTD網(wǎng)格文件中的點為普通roTD網(wǎng)格點,現(xiàn)要寫入新部件普通FDTD網(wǎng)格點,需要比較部件大小,取小部件寫入;若最終roTD網(wǎng)格文件中的點為普通roTD網(wǎng)格點,現(xiàn)要寫入細FDTD網(wǎng)格點,則該點處于部件交界處,寫入細FDTD網(wǎng)格點,并讀取該點細FDTD網(wǎng)格點信息,若細ro T D網(wǎng)格點有空點,則賦值為原先點的部件號,并寫入;若最終F D T D網(wǎng)格文件中的點為細roTD網(wǎng)格點,現(xiàn)要寫入細roTD網(wǎng)格點,則該點處于部件交界處,比較部件大小,取小部件寫入,并讀取該點細FDTD網(wǎng)格點信息,若細roTD網(wǎng)格點有空點,則賦值為原先點的部件號,并寫入;所有部件處理后,即得到最終的FDTD網(wǎng)格模型文件。6.根據(jù)權(quán)利要求1所述的一種多階roTD網(wǎng)格建模方法,其特征在于過程3.7根據(jù)所有點三維方向上最大最小值選取用戶自定的空間步長生成任意大小的FDTD網(wǎng)格。
【文檔編號】G06T17/30GK105869213SQ201610179450
【公開日】2016年8月17日
【申請日】2016年3月25日
【發(fā)明人】楊利霞, 丁元赫, 周祥
【申請人】江蘇大學(xué)