基于矩量法的电磁散射GPU加速算法及三维可视化
【摘要】:电磁散射问题是计算电磁学的主要研究方向之一,而对具有复杂形状电大尺寸的目标的电磁散射问题的研究具有重要的科学研究价值。电磁散射计算领域有很多计算方法,基于积分方程的矩量法就是其中一种比较受欢迎的方法。矩量法是基于电磁场积分方程的数值方法,但由于矩量法的全局性,矩量法所产生的矩阵多为稠密矩阵,而随着计算机技术的不断发展,研究矩量法的快速算法也成为了一个热点。本文以基于GPU的加速计算框架为基础,对矩量法求解电大尺寸目标的电磁散射特性进行并行加速,重点研究了矩量法的阻抗矩阵并行填充算法和阻抗矩阵的并行迭代算法。其中,阻抗矩阵的并行填充算法通过分析矩阵的规模,合理分配所需的线程和线程块并合理使用GPU中的共享内存和常量内存,针对不同数量级的计算进行优化,提出不同的快速算法;对算法进行性能测试,根据性能测试的结论提出改进的算法,从而能最大化利用不同硬件资源,达到较高的加速比以及实现负载均衡。对于矩阵迭代求解算法,我们分别采用雅克比、高斯-赛德尔和共轭梯度法的改进算法(CGN)在不同数量级下进行测试,得出较优的迭代算法。在迭代过程中使用CUBLAS库来进行矩阵同向量乘运算的GPU加速。在本文中,我们使用三维可视化技术将矩量法计算结果使用三维图形技术将其转化为三维模型。为了实时、更形象的展示目标在入射场下不同时刻其表面电流的变化情况,我们基于OpenSceneGraph三维引擎,绘制了目标在不同状态下表面电流的变化情况,从而实现了电磁散射物理场的三维可视化。