本發(fā)明涉及一種徑向點(diǎn)插值型無網(wǎng)格法形函數(shù)構(gòu)造方法。
背景技術(shù):
在電磁場的數(shù)值計(jì)算中,傳統(tǒng)的數(shù)值算法需要采用特定形狀的網(wǎng)格單元進(jìn)行建模,比如有限差分法(FDTD)采用六面體單元,有限元法(FEM)和矩量法(MOM)則采用三角面元。但是,對于電大尺寸或者精細(xì)的結(jié)構(gòu),建模的過程非常耗時(shí),甚至可能會超過仿真時(shí)間。另外,對于時(shí)變結(jié)構(gòu),一旦結(jié)構(gòu)發(fā)生變化,建模過程就需要重復(fù)進(jìn)行,導(dǎo)致仿真時(shí)間急劇增加。與傳統(tǒng)方法不同,無網(wǎng)格法是一類不采用網(wǎng)格單元進(jìn)行建模的數(shù)值算法,包括移動最小二乘法(MLS)、發(fā)散單元法(DEM)、無單元伽遼金法(EFG)和徑向點(diǎn)插值型無網(wǎng)格法(RPIM)等。無網(wǎng)格法采用可以靈活放置的節(jié)點(diǎn)進(jìn)行建模,由于節(jié)點(diǎn)之間沒有相互連接,因而無需像傳統(tǒng)算法一樣處理網(wǎng)格之間的拓?fù)潢P(guān)系。另外,結(jié)構(gòu)發(fā)生變化時(shí),只需要在結(jié)構(gòu)變化的區(qū)域重新配置節(jié)點(diǎn)。
徑向點(diǎn)插值型無網(wǎng)格法(RPIM)采用徑向基函數(shù)(RBF)在空域進(jìn)行插值,具有較高的數(shù)值精度。RPIM在建模后需要進(jìn)行預(yù)處理,計(jì)算出各節(jié)點(diǎn)處的形函數(shù)。在預(yù)處理時(shí),要在各節(jié)點(diǎn)處構(gòu)造球形支撐域,并搜索位于支撐域以內(nèi)的鄰近節(jié)點(diǎn)。一般來說,支撐域半徑越大,則精度越高,但是算法的效率相應(yīng)降低,因而支撐域半徑的選取需要在精度和效率之間作出平衡。
傳統(tǒng)的RPIM方法在預(yù)處理中使用球形支撐域。對于細(xì)長結(jié)構(gòu),如果計(jì)算空間采用空間分布較為均勻的節(jié)點(diǎn)進(jìn)行離散,雖然可以采用較小的支撐域半徑,但由于節(jié)點(diǎn)總數(shù)多,導(dǎo)致最終計(jì)算的未知量個(gè)數(shù)很多。相反,如果用于離散的節(jié)點(diǎn)在結(jié)構(gòu)較長的方向上相比其它方向稀疏,為了保證精度,需要增大支撐域的半徑,使得支撐域內(nèi)的節(jié)點(diǎn)數(shù)增多,使得整個(gè)算法的效率下降。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供了一種徑向點(diǎn)插值型無網(wǎng)格法形函數(shù)構(gòu)造方法。
為達(dá)到本發(fā)明的目的,本發(fā)明采用技術(shù)方案:一種徑向點(diǎn)插值型無網(wǎng)格法形函數(shù)構(gòu)造方法,其包括以下步驟:
第一步:建立x、y、z坐標(biāo)軸,沿著結(jié)構(gòu)尺寸最長方向,記作x軸,且結(jié)構(gòu)在x、y和z軸方向上的尺寸分別記作Lx、Ly和Lz;
第二步:采用一系列離散節(jié)點(diǎn)對結(jié)構(gòu)進(jìn)行建模,沿三個(gè)軸向的節(jié)點(diǎn)平均距離比為Lx:Ly:Lz,使得在x軸方向節(jié)點(diǎn)密度最低;由于Lx最大,從而x方向平均距離最大,從而節(jié)點(diǎn)密度最低;
第三步:對真實(shí)空間Ω內(nèi)的離散節(jié)點(diǎn)坐標(biāo)(x,y,z)進(jìn)行線性變換,轉(zhuǎn)換為線性映射空間Ω*內(nèi)的坐標(biāo)(x*,y*,z*),變換公式為:
通過線性變換,Ω中的橢球形支撐域被映射到Ω*下的球形支撐域,其中支撐域半徑的選擇可以參考文獻(xiàn)1:G.R.Liu and Y.T.Gu,An Introduction to Meshfree Methods and Their Programming.Dortrecht,The Netherlands:Springer,2005.)
第四步:在線性映射空間Ω*內(nèi),與傳統(tǒng)RPIM算法一樣,使用kNN算法在球形支撐域逐一搜索臨近節(jié)點(diǎn)。對映射空間Ω*內(nèi)第i個(gè)節(jié)點(diǎn),記其臨近節(jié)點(diǎn)編號的集合為Xi,從而對于真實(shí)空間Ω中的第i個(gè)節(jié)點(diǎn),在橢球形支撐域中的臨近節(jié)點(diǎn)編號的集合仍是Xi;其中kNN算法可以參考文獻(xiàn)2:J.H.Friedman,J.L.Bentley,and R.A.Finkel,“An algorithm for finding best matches in logarithmic expected time,”ACM Trans.Math.Softw.,vol.3,no.3,pp.209–226,1977。文獻(xiàn)3:N Kumar,Z Li,S Nayar,“What is a Good Nearest Neighbors Algorithmfor Finding Similar Patches in Images?”European Conference on Computer Vision,vol.5303,pp.364-378,2008。kNN算法是k近鄰算法的統(tǒng)稱。
第五步:在真實(shí)空間Ω中,對第i個(gè)節(jié)點(diǎn)(xi,yi,zi),借助Xi計(jì)算如下矢量:
RT=[r(d1),r(d2),…,rn(dn)]
PT=[1,xi,yi,zi]
其中r是徑向基函數(shù),dj是節(jié)點(diǎn)i與Xi中第j個(gè)節(jié)點(diǎn)之間的距離,n是集合Xi中臨近節(jié)點(diǎn)編號的個(gè)數(shù),T代表轉(zhuǎn)置。
同樣在Ω中構(gòu)造如下矩陣:
其中Rkl=r(dkl),dkl是Xi中第k個(gè)節(jié)點(diǎn)和第l個(gè)節(jié)點(diǎn)之間的距離。P0中的xj、yj和zj為Xi中第j個(gè)節(jié)點(diǎn)的坐標(biāo)值;Ω中第i個(gè)節(jié)點(diǎn)的形函數(shù)為Φi=RTSa+PTSb,其中
第六步:將上述過程應(yīng)用到Ω中的所有節(jié)點(diǎn),得到各點(diǎn)對應(yīng)的形函數(shù)至結(jié)束。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步包括如下附屬技術(shù)方案:
其用于細(xì)長結(jié)構(gòu)建模。
本發(fā)明在計(jì)算形函數(shù)時(shí),使用橢球形支撐域代替球形支撐域,因而在處理細(xì)長結(jié)構(gòu)時(shí),可以在細(xì)長方向降低節(jié)點(diǎn)密度的同時(shí),不需要增加支撐域半徑,從而提高計(jì)算效率。另外,通過在引入線性映射空間,使得本發(fā)明可以采用和傳統(tǒng)RPIM方法相同的最近鄰搜索算法。
本發(fā)明優(yōu)點(diǎn)是:
1、采用橢球形支撐域,降低了細(xì)長結(jié)構(gòu)建模所需節(jié)點(diǎn)個(gè)數(shù)要求,使得要計(jì)算的未知數(shù)個(gè)數(shù)大大減少;
2、引入了映射空間概念,將真實(shí)空間中的橢球形支撐域變換成為新空間下的球形支撐域,從而可以直接使用傳統(tǒng)RPIM算法使用的近鄰搜索算法。
附圖說明
下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步描述:
圖1為本發(fā)明中坐標(biāo)軸的示意圖。
圖2為本發(fā)明中線性變換的示意圖。
具體實(shí)施方式
實(shí)施例:如圖1-2所示,本發(fā)明提供一種徑向點(diǎn)插值型無網(wǎng)格法形函數(shù)構(gòu)造方法的具體實(shí)施例,其包括如下步驟:。
1建立坐標(biāo)軸
其中一條坐標(biāo)軸沿著結(jié)構(gòu)尺寸最長方向(記作x軸)。結(jié)構(gòu)在x、y和z方向上的尺寸分別記作Lx、Ly和Lz(如圖1);
2結(jié)構(gòu)建模
采用一系列離散節(jié)點(diǎn)對細(xì)長結(jié)構(gòu)進(jìn)行建模,三個(gè)方向上節(jié)點(diǎn)距離比為Lx:Ly:Lz,使得在x方向節(jié)點(diǎn)密度最低;
3空間變換
為了快速地在橢球支撐域內(nèi)進(jìn)行近鄰查找,引入映射空間的概念。對真實(shí)空間Ω內(nèi)的離散節(jié)點(diǎn)坐標(biāo)(x,y,z)進(jìn)行線性變換,轉(zhuǎn)換為線性映射空間Ω*內(nèi)的坐標(biāo)(x*,y*,z*),變換公式為:
通過線性變換,Ω中的橢球形支撐域被映射到Ω*下的球形支撐域(如圖2)。其中球形支撐域半徑的選取,可以參考文獻(xiàn)1;
4查找近鄰
在線性映射空間Ω*內(nèi),與傳統(tǒng)RPIM算法一樣,使用kNN算法在球形支撐域逐一搜索臨近節(jié)點(diǎn)。對映射空間Ω*內(nèi)第i個(gè)節(jié)點(diǎn),記其臨近節(jié)點(diǎn)編號的集合為Xi,從而對于真實(shí)空間Ω中的第i個(gè)節(jié)點(diǎn),在橢球支撐域中的臨近節(jié)點(diǎn)編號的集合仍是Xi;kNN算法可以參考文獻(xiàn)2;
5計(jì)算形函數(shù)
在真實(shí)空間Ω中,對第i個(gè)節(jié)點(diǎn)(xi,yi,zi),借助Xi計(jì)算如下矢量:
RT=[r(d1),r(d2),…,rn(dn)]
PT=[1,xi,yi,zi]
其中r是徑向基函數(shù),dj是節(jié)點(diǎn)i與Xi中第j個(gè)節(jié)點(diǎn)之間的距離,n是集合Xi中臨近節(jié)點(diǎn)編號的個(gè)數(shù),T代表轉(zhuǎn)置。同樣在Ω中構(gòu)造如下矩陣:
其中Rkl=r(dkl),dkl是Xi中第k個(gè)節(jié)點(diǎn)和第l個(gè)節(jié)點(diǎn)之間的距離。P0中的xj、yj和zj為Xi中第j個(gè)節(jié)點(diǎn)的坐標(biāo)值;Ω中第i個(gè)節(jié)點(diǎn)的形函數(shù)為Φi=RTSa+PTSb,其中
第六步:將上述過程應(yīng)用到Ω中的所有節(jié)點(diǎn),得到各點(diǎn)對應(yīng)的形函數(shù)至結(jié)束。
由此本發(fā)明具有以下優(yōu)點(diǎn):
1、采用橢球形支撐域,對細(xì)長結(jié)構(gòu)在較長尺寸的方向上,節(jié)點(diǎn)密度要求降低,即降低了細(xì)長結(jié)構(gòu)建模所需節(jié)點(diǎn)個(gè)數(shù)要求,使得要計(jì)算的未知數(shù)個(gè)數(shù)大大減少;
2、引入了映射空間概念,將真實(shí)空間中的橢球形支撐域變換成為新空間下的球形支撐域,在線性變換后的映射空間內(nèi)進(jìn)行近鄰搜索,從而可以直接使用傳統(tǒng)RPIM算法使用的近鄰搜索算法。
當(dāng)然上述實(shí)施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明主要技術(shù)方案的精神實(shí)質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。