[發明專利]一種基于GPU并行的LeapfrogADI-FDTD方法有效
| 申請號: | 201710725448.3 | 申請日: | 2017-08-22 |
| 公開(公告)號: | CN107526887B | 公開(公告)日: | 2020-02-18 |
| 發明(設計)人: | 金曉林;劉智超;李斌;楊中海 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G06F30/23 | 分類號: | G06F30/23;G06T1/20 |
| 代理公司: | 電子科技大學專利中心 51203 | 代理人: | 閆樹平 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 gpu 并行 leapfrogadi fdtd 方法 | ||
1.一種基于GPU并行的Leapfrog ADI-FDTD方法,具體步驟如下:
步驟1、將求解區域使用Yee網格劃分;
對CPU主機端與GPU上的數據進行初始化,即在CPU主機端定義結構體數組,大小為模擬求解區域的總網格數,用于存放GPU返回的各個網格點的電磁場計算結果,并將各個網格的電磁場場值賦值為0;同時,在GPU上的全局內存中定義同樣大小的結構體數組,用于存儲電磁場計算結果,并將各個網格的電磁場場值賦值為0;
步驟2、數據預處理,在GPU全局內存上開辟空間,并利用下述推導的計算式,計算得到矩陣方程的系數矩陣;
含有CPML的Leapfrog ADI-FDTD算法計算的場量包括電場的三個分量Ex、Ey、Ez,磁場的三個分量Hx、Hy、Hz;其中,Ex的計算公式如式(1)、(2)、(3)所示,Hx的計算公式如式(4)、(5)、(6)所示:
其中,μ為磁導率,ε為介電常數,ks為坐標伸縮系數s=x,y,z,Δt為單位時間步長,Δx、Δy、Δz分別為沿x、y、z方向的單位網格長度,as與bs為中間計算結果,二者的計算是為了得到ψ,其計算式如式(21)(20)所示,ψ為方程右端常數項的中間結果,i、j、k為模擬區域中網格在x、y、z方向上的編號,n為當前時間步長;
其他方向的電場Ey、Ez與磁場Hy、Hz分量計算式同理可得;
由于在Yee網格中,存在半網格位置,將地址映射到整數網格點,將(1)~(6)式進行地址映射與化簡后得到Ex的計算式如式(7)~(12)所示,Hx的計算式如式(13)~(18)所示:
其中:
CEx=AEx (10)
其中:
CHx=AHx (16)
其中,AEx、BEx、CEx為Ex計算方程中左端的系數,AHx、BHx、CHx為Hx計算方程中左端的系數;其他方向電場分量與磁場分量計算式同理可得;
其中,方程中特定的變量求解式如下:
(s=x,y,z) (19)
kzmax=8 (26)
kxmax=kymax=1 (27)
m=4 (28)
其中m與mα是多項式的階數,s0是CPML與模擬區域交界位置,s是當前CPML位置,d是CPML層的厚度,σ、α為中間計算變量,用于as、bs的計算;
根據以上計算式分別得到各個場分量計算方程的系數和方程右端常數項,根據計算方程的特點,其系數構成了三對角矩陣,將三對角矩陣壓縮存儲在GPU全局內存中的數組A、B、C中,方程右端常數項存儲在GPU全局內存中的數組X中;
步驟3、使用在GPU上開辟的線程去求解計算電場的矩陣方程,從而得到每個網格處的電場場值Ex、Ey、Ez,最后進行電場邊界的處理;
步驟4、利用步驟3計算得到的電場場值,使用在GPU上開辟的線程去求解計算磁場的矩陣方程,從而得到每個網格處的磁場場值Hx、Hy、Hz,最后進行磁場邊界的處理;
步驟5、存儲計算結果至GPU全局內存并重復步驟3、4,在每個時間步長都更新每個網格的電場與磁場的場值,從step=0迭代直至達到step=STEPS,STEPS為設置的模擬總時間步長數;
步驟6、將步驟5的計算結果從GPU傳回CPU主機端,進行數據分析與存儲。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710725448.3/1.html,轉載請聲明來源鉆瓜專利網。





