用于电磁学的 CUDA 中的 3D 有限差分时域 (FDTD)

3D Finite Difference Time Domain (FDTD) in CUDA for electromagnetics

我看到了 CUDA-SDK 中提供的 FDTD3D 示例,但没有关于它的文档。是否有人尝试修改它以计算麦克斯韦方程组的解,或者最好从头开始编写所有内容?


这是此处提供的较晚答案,用于从未回答列表中删除此问题。

正如 OP 所述,CUDA-SDK 提供了一个 3D 有限差分时域 (FDTD) 求解器,该求解器的描述在论文中提供

P。 Micikevicius,"使用 CUDA 在 GPU 上进行 3D 有限差分计算"

代码已针对 Tesla 卡进行了优化,并使用共享内存来加载 3D 计算域的切片,以实现快速模板评估(减少读取冗余)。该代码不适用于电磁应用,因为更新规则如下:

enter image description here

但它可以很容易地扩展到电磁学。在这方面实现电磁学 3D FDTD 代码并特别注意模板计算效率的一个很好的参考如下:

V.德米尔,A.Z. Elsherbeni,"基于计算统一设备架构 (CUDA) 的有限
差分时域 (FDTD) 实现",Appl. Comput. Electromagn. Soc. J.,第 25 卷,第 4 期,第 303-314 页,2010 年 4 月

它还对有效的模板计算进行了彻底的讨论。电磁场是矢量场,在这种情况下,上述更新方程由电场和磁场三个分量的六个方程代替。例如,磁场x-分量的更新方程为

enter image description here

最后,值得一提的是,关于 CUDA 中 3D FDTD 的另一个讨论来源是 Parallel ForAll 博客,请参阅

CUDA C/C 中的有限差分方法,第 1 部分

CUDA C 中的有限差分方法,第 2 部分

附言此答案中出现的公式是使用 mimetex 生成的。