• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      時(shí)域有限差分法的圖形處理單元的加速

      2014-10-21 20:02:15潘東旭
      山東工業(yè)技術(shù) 2014年24期
      關(guān)鍵詞:麥克斯韋并行算法差分法

      摘 要:時(shí)域有限差分法,即FDTD(Finite Difference Time Domain),是計(jì)算電磁學(xué)的一種重要方法。作為一種天然的并行算法,它的計(jì)算過(guò)程可以劃分為多個(gè)同時(shí)進(jìn)行相似計(jì)算的子計(jì)算。這個(gè)方法主要是把麥克斯韋方程在時(shí)間上和空間上進(jìn)行差分化,并且通過(guò)時(shí)間領(lǐng)域上的更新來(lái)模仿電磁場(chǎng)的變化來(lái)計(jì)算問(wèn)題,因而有利于解決很多電磁場(chǎng)問(wèn)題。而圖形處理單元即GPU(Graphic Processing Unit)相對(duì)于CPU的高性能計(jì)算速度以及NVIDA公司生產(chǎn)的GPU特有的高并行結(jié)構(gòu),為時(shí)域有限差分的加速提供了可能。

      關(guān)鍵字:時(shí)域有限差分法;圖形處理單元;麥克斯韋方程;并行算法

      1 FDTD的基本原理

      FDTD算法是1966年K.S.Yee發(fā)表在AP上的一篇論文建立起來(lái)的,后被稱為Yee網(wǎng)格空間離散方式。核心思想是把帶時(shí)間變量的麥克斯韋旋度方程轉(zhuǎn)化為差分形式,故中文稱之為“時(shí)有限差分法”。麥克斯韋方程如下:

      其中H是磁場(chǎng)強(qiáng)度,E是電場(chǎng)強(qiáng)度,D是電位移,B是磁通量密度。

      上述兩個(gè)矢量方程描述了麥克斯韋方程中磁場(chǎng)與電場(chǎng)復(fù)雜交錯(cuò)的關(guān)系。由于在三維空間中每個(gè)矢量方程又可以分解為三個(gè)標(biāo)量方程,因此該方程組可以化為6個(gè)標(biāo)量方程如下所示:

      這樣的話便將問(wèn)題的幾何空間離散為空間網(wǎng)格,電場(chǎng)和磁場(chǎng)的分量便被置于空間離散的網(wǎng)格點(diǎn)上。而這是FDTD計(jì)算的前提。我們?cè)儆貌罘纸铺娲溈怂鬼f這6個(gè)標(biāo)量方程中的時(shí)間和空間導(dǎo)數(shù),構(gòu)造一系列方程,均以前一時(shí)間步電磁場(chǎng)瞬時(shí)值來(lái)“預(yù)測(cè)”后一時(shí)間步電磁場(chǎng)的瞬時(shí)值,由此構(gòu)造時(shí)間不斷向前推近的算法,來(lái)模擬時(shí)域中的電磁場(chǎng)變化過(guò)程。

      1966年,Yee首次給出了麥克斯韋旋度方程的一組差分形式,這組方程在空間和時(shí)間上一離散的形式給出,使用的是中心差分法。對(duì)空間(X軸方向)的中心差分法離散公式如下:

      對(duì)Y軸,Z軸方向的中心差分離散以此類推。

      對(duì)時(shí)間的中心差分離散公示如下:

      圖1為Yee單元網(wǎng)格的結(jié)構(gòu):

      我們根據(jù)6個(gè)麥克斯韋標(biāo)量方程,結(jié)合上述中心差分法,便可以得到三維問(wèn)題下的FDTD更新方程如下:

      其余的五個(gè)方程也如法可以寫出,因此任何時(shí)刻可一次算出一個(gè)點(diǎn),并行算法可計(jì)算出多個(gè)點(diǎn)。通過(guò)這些運(yùn)算可以交替算出電場(chǎng)磁場(chǎng)在各個(gè)時(shí)間步的值。

      上述方法運(yùn)行時(shí)忽略了兩個(gè)很重要的問(wèn)題,一是數(shù)值色散,就是該方法會(huì)產(chǎn)生一定誤差,如何維持該方法可行的精度問(wèn)題,二是計(jì)算機(jī)中模擬的無(wú)限過(guò)程與計(jì)算機(jī)本身儲(chǔ)存內(nèi)存有限相矛盾的問(wèn)題。

      解決數(shù)值色散的關(guān)鍵是空間網(wǎng)格大小的選擇,時(shí)間步長(zhǎng)△t,空間步長(zhǎng)△x, △y, △z必須滿足一定的關(guān)系,否則就使得數(shù)值表現(xiàn)不穩(wěn)定,表現(xiàn)為:隨著計(jì)算步數(shù)的增加,計(jì)算場(chǎng)量的數(shù)值會(huì)無(wú)限的增大,這種增大不是由于誤差積累造成的,而是由于電磁波的傳播關(guān)系被破壞造成的。所以△t, △x, △y, △z必須滿足一定的關(guān)系以保證穩(wěn)定性,其數(shù)值穩(wěn)定條件為如下:

      我們可以軟件設(shè)置吸收邊界來(lái)解決第二個(gè)問(wèn)題。時(shí)域有限差分網(wǎng)格將在某處被截?cái)?。這要求在網(wǎng)格截?cái)嗵幉荒芤鸩ǖ拿黠@反射。不完善的問(wèn)題空間截?cái)鄷?huì)引起數(shù)值反射,在計(jì)算空間經(jīng)一定的模擬時(shí)間后會(huì)惡化計(jì)算結(jié)果。所以添加吸收邊界及如何添加合適的吸收邊界也已成為FDTD算法研究中的熱點(diǎn)問(wèn)題。

      綜上所述其程序流程圖算法如圖2。

      2 基于matlab的FDTD算法仿真

      基于上述算法流程圖,采用matlab語(yǔ)言來(lái)進(jìn)行FDTD算法的仿真。其部分代碼如下:

      %一維的情況

      %電場(chǎng)只有Ex,磁場(chǎng)只有Hy

      %每個(gè)網(wǎng)格用了2個(gè)時(shí)間步

      %采用了簡(jiǎn)單的ABC;

      %劃分了200個(gè)網(wǎng)格;

      clc;clear;

      low1=0;

      low2=0;

      high1=0;

      high2=0;

      %figure(1); %line('erasemode','xor');

      KE=200;

      for i=1:KE; % 電場(chǎng)初始化

      e(i)=0;

      end;

      for i=1:KE; % 磁場(chǎng)初始化

      h(i)=0;

      end;

      npml=10;

      for k=1:KE;

      g2(k)=1;

      g3(k)=1;

      f2(k)=1;

      f3(k)=1;

      end

      for k=1:npml;

      xn=0.3*((npml-k+1)/npml)^3;

      g2(k)=1/(1+xn);

      g2(KE-k)=1/(1+xn);

      g3(k)=(1-xn)/(1+xn);

      g3(KE-k)=(1-xn)/(1+xn);

      xn=0.3*((npml-k+1-0.5)/npml)^3;

      f2(k)=1/(1+xn);

      f2(KE-k)=1/(1+xn);

      f3(k)=(1-xn)/(1+xn);

      f3(KE-k)=(1-xn)/(1+xn);

      end

      for t=0:2300;

      for k=2:KE;

      e(k)=g3(k)*e(k)+ g2(k)*0.5*(h(k-1)-h(k)); % 電場(chǎng)迭代

      end;

      % e(100)=e(100)+exp((-0.5)*((40-t)/12)^2); % 軟源

      % e(101)=exp((-0.5)*((40-t)/12)^2); % 硬源

      %e(101)=cos(0.2*t); % 正弦源

      % e(1)=low2; % 吸收邊界

      % low2=low1;

      % low1=e(2);

      % e(201)=high2;

      % high2=high1;

      % high1=e(200);

      % e(1)=0; %金屬邊界

      % e(201)=0;

      for k=1:KE-1;

      h(k)=f3(k)*h(k)+f2(k)*0.5*(e(k)-e(k+1)); % 磁場(chǎng)迭代

      end;

      % plot(h);

      plot(e);

      axis([1 201 -1.0 1.0]); % 吸收邊界顯示需要

      drawnow;

      pause(0.001);

      end;

      部分運(yùn)行結(jié)果如圖3:(此結(jié)果由上述代碼運(yùn)行產(chǎn)生)

      圖3中間為正弦激勵(lì)源,隨著時(shí)間不斷把電磁場(chǎng)向前推進(jìn),由于計(jì)算機(jī)存儲(chǔ)空間限制,在兩邊設(shè)置吸收邊界,抵達(dá)吸收邊界的波形會(huì)被吸收掉。 (下轉(zhuǎn)第238頁(yè))

      (上接第226頁(yè))

      3 CPU與GPU加速的選擇

      CPU的知名度遠(yuǎn)大于GPU,然而此次FDTD算法的加速卻更加青睞GPU。眾所周知,CPU(中央處理單元)是計(jì)算機(jī)的核心設(shè)備,用來(lái)完成各種復(fù)雜的計(jì)算任務(wù),應(yīng)用范圍廣泛。而GPU(圖形處理單元)的工作目的只有一個(gè),就是為計(jì)算機(jī)提供圖像處理所需指令和數(shù)據(jù)。由于其執(zhí)行任務(wù)單一,設(shè)計(jì)周期相對(duì)較短,技術(shù)突破十分迅速。不僅如此低成本高性能的GPU是一種高度并行的數(shù)據(jù)流處理器,顯性結(jié)構(gòu)的數(shù)據(jù)并行是GPU不在需要大量復(fù)雜的邏輯控制。數(shù)據(jù)流經(jīng)過(guò)高速內(nèi)存接口時(shí)不再需要大量緩存。這樣就可以空出大量存儲(chǔ)空間用于計(jì)算單元。對(duì)于解決FDTD這樣需要大規(guī)模計(jì)算的算法十分有利。雖然GPU的設(shè)計(jì)主要是進(jìn)行圖像處理,并不是用于計(jì)算。但圖像處理過(guò)程與矢量運(yùn)算極為相似,為GPU進(jìn)行電磁場(chǎng)矢量計(jì)算奠定了基礎(chǔ)。下表給出兩者之間的性能比較。

      圖4為GPU和CPU最大理論處理速度:(單位:/GFlops)

      然而在眾多的GPU中,進(jìn)行FDTD算法研究的學(xué)者一直選擇了與FDTD天然并行結(jié)構(gòu)不謀而合的NVIDIA顯卡。要想在這種類型上的GPU進(jìn)行FDTD計(jì)算的編程,必須首先熟悉它的硬件操作語(yǔ)言CUDA。因?yàn)橐贕PU上進(jìn)行數(shù)學(xué)運(yùn)算,需要先對(duì)GPU中的著色單元進(jìn)行編程。CUDA語(yǔ)言是一門低級(jí)語(yǔ)言,對(duì)于掌握了C語(yǔ)言和Matlab這些高級(jí)語(yǔ)言的人來(lái)說(shuō)低級(jí)語(yǔ)言要復(fù)雜的多,這也阻礙了GPU的進(jìn)一步應(yīng)用??傊珿PU在FDTD計(jì)算方面有著巨大的應(yīng)用前景。

      4 結(jié)論

      本文簡(jiǎn)明扼要的介紹了FDTD算法的由來(lái),基本原理,數(shù)值色散和吸收邊界問(wèn)題。并且給出了基于Matlab語(yǔ)言的仿真過(guò)程。進(jìn)一步分析了GPU和CPU加速FDTD算法的優(yōu)劣情況,指明了基于GPU加速的可行性。FDTD算法作為一種重要的電磁場(chǎng)計(jì)算方法,需要占據(jù)大量?jī)?chǔ)存空間并且有這天然的并行結(jié)構(gòu)。而GPU這個(gè)本來(lái)運(yùn)用于圖像處理的顯卡,由于其并行數(shù)據(jù)流結(jié)構(gòu)可以提供大量計(jì)算空間,使得計(jì)算速度相對(duì)于CPU有了極大提升。相信GPU還會(huì)在未來(lái)的FDTD計(jì)算道路上發(fā)揮自己更大的作用。

      參考文獻(xiàn):

      [1]葛德彪,閆玉波.電磁波時(shí)域有限差分方法[M].西安:西安電子科技大學(xué)出版社,2005.

      [2]沈琛.基于GPU加速的FDTD算法對(duì)電磁輻射與散射問(wèn)題的研究[D].安徽大學(xué)碩士學(xué)位論文,2010(04).

      [3](美)AtefElsherbeni,VeyselDemir . Matlab模擬的電磁學(xué)時(shí)域有限差分法[M].北京:國(guó)防工業(yè)出版社,2013.

      [4]杜文革.基于多GPU的FDTD并行算法及其在電磁仿真中的應(yīng)用[D].山東大學(xué)博士學(xué)位論文,2011(03).

      [5]張波.基于圖形處理器的時(shí)域有限差分算法研究[J].電波科學(xué)學(xué)報(bào),2011(12).

      [6]馬巍巍,孫冬.基于 GPU的高階辛 FDTD 算法的并行仿真研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(07).

      項(xiàng)目名稱:安徽大學(xué) 大學(xué)生科研訓(xùn)練計(jì)劃項(xiàng)目 “基于GPU的FDTD并行算法”。項(xiàng)目編號(hào):KYXL2014073

      作者簡(jiǎn)介:潘東旭,男,中共黨員,安徽大學(xué)2012級(jí)電氣工程系本科在讀。

      猜你喜歡
      麥克斯韋并行算法差分法
      麥克斯韋: 掌控電磁之力的大魔法師
      二維粘彈性棒和板問(wèn)題ADI有限差分法
      地圖線要素綜合化的簡(jiǎn)遞歸并行算法
      Maxwell Loses a Tooth 麥克斯韋掉牙了
      雙麥克斯韋分布下極區(qū)中層塵埃粒子帶電研究
      抓住麥克斯韋妖的尾巴——重新定義能源
      能源(2018年10期)2018-12-08 08:02:48
      基于GPU的GaBP并行算法研究
      基于SQMR方法的三維CSAMT有限差分法數(shù)值模擬
      有限差分法模擬電梯懸掛系統(tǒng)橫向受迫振動(dòng)
      基于GPU的分類并行算法的研究與實(shí)現(xiàn)
      元朗区| 广南县| 广丰县| 共和县| 屏南县| 马边| 澳门| 清镇市| 韶关市| 景东| 永春县| 潞西市| 长汀县| 平山县| 四川省| 马公市| 理塘县| 武宣县| 马尔康县| 平阳县| 浏阳市| 广宁县| 儋州市| 中山市| 萍乡市| 渭源县| 来安县| 黄大仙区| 和林格尔县| 辽源市| 南澳县| 遂昌县| 丹棱县| 会昌县| 汶川县| 麻栗坡县| 子洲县| 岗巴县| 延安市| 探索| 荃湾区|