<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設計應用 > FEKO計算中減少內存的方法

          FEKO計算中減少內存的方法

          作者: 時間:2013-07-01 來源:網絡 收藏

          軟件進行時,由于對計算資源的強烈需求,計算資源尤其是的大小極大的成為決定求解問題規(guī)模的約束條件。為了在已有的硬件計算條件下,解決盡量大的電磁問題,提供了一些減少的途徑,主要可分為二個層面,其一是算法層面的節(jié)約,其二是技巧層面的節(jié)約內存。

          本文引用地址:http://www.ex-cimer.com/article/259796.htm

          算法
          從算法上面來講,提供的有MoM,MLFMM,PO,UTD,FEM。矩量法占用內存最多,存儲量級為O(N2)。MLFMM為基于MoM的快速算法,將存儲量成功將到O(NlogN)量級。PO和UTD屬于高頻方法,PO只考慮一次場的貢獻,存儲量為O(N),UTD不需要對目標表面剖分,所以內存不是求解的困難。當然,各種方法有其適用的范圍,如果精確方法不能求解的問題,可考慮采用近似的方法降低對內存的需求以解決。

          技巧
          主要有兩點,一是,二是的預條件的設置。

          1、
          在矩量法求解和物理光學求解中,利用可大大減少內存需求和求解的復雜度,節(jié)省求解時間。
          矩量法求解中,如所求解的問題存在電磁對稱性,求解的過程可簡化成求解部分模型,將結果復制到對稱的部分即得到全部結構的解。電磁對稱性分為兩種,電對稱和磁對稱,分別用到不同的邊界條件實現對稱所帶來的簡便性。幾何對稱可以方便建模,然而卻不能節(jié)省計算和內存需求。
          物理光學計算中,也可以利用電磁對稱節(jié)省內存開銷,同時可選擇對稱射線尋跡選項,加速計算。

          2、預條件:
          眾所周知,算法的內存需求絕大部分是矩陣方程所占用的內存,如何降低這部分內存需求,將是減少整個算法內存需求的關鍵。對于多層快速多極子這樣的迭代算法,其內存的需求主要包括三部分:近區(qū)阻抗矩陣元素,轉移矩陣和預條件矩陣。近區(qū)阻抗矩陣元素的內存需求是跟MLFMM算法所確定的最細層盒子尺寸決定的,FEKO中,如果想通過調整該盒子尺寸來減少內存,可通過FM卡手動設置其尺寸,不過一般不推薦這樣做,FEKO默認尺寸為0.23個波長,縮小尺寸將導致多極子模式數增大,從而導致計算復雜度增大。

          預條件矩陣是整個迭代過程占用內存最多的部分,為了減少此部分內存,可通過CG卡調節(jié)預條件的種類或者改變其參數。對于MLFMM,FEKO提供了2種預條件技術,不完全LU分解預條件和稀疏近似逆預條件。FEKO默認采用完全LU分解,填充級別為12,為了減少內存,可將ILU預條件的填充級別改為低于12的值,值越低,預條件占用內存越少,但預條件效果越差。稀疏近似逆占用內存較ILU少很多,當然效果也要差一些。目前,只有稀疏近似逆支持MLFMM的并行。

          另外,值得一提的是MLFMM計算過程中,EG卡中默認選擇的單精度選項,數據采用單精度存儲,將減少一半的內存需求,對于一般情況,單精度已足夠滿足計算的精度要求。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();