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

时间:2012-07-09 10:40:51

标签: cuda

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

1 个答案:

答案 0 :(得分:3)

这是一个迟到的答案,用于从未答复的列表中删除此问题。

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

P. Micikevicius, "3D Finite Difference Computation on GPUs using CUDA"

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

enter image description here

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

V. Demir, A.Z. Elsherbeni, "Compute Unified Device Architecture (CUDA) Based Finite- Difference Time-Domain (FDTD) Implementation", Appl. Comput. Electromagn. Soc. J., vol. 25, n. 4, pp. 303-314, Apr. 2010

还提供了有效模板计算的详尽讨论。电磁场是矢量场,并且在这种情况下,上述更新方程由电场和磁场的三个分量的六个等式代替。例如,磁场的x - 分量的更新等式是

enter image description here

最后,应该提到的是,CUDA中3D FDTD的另一个讨论来源是Parallel ForAll博客,请参阅

Finite Difference Methods in CUDA C/C++, Part 1

Finite Difference Methods in CUDA C++, Part 2

P.S。此答案中出现的公式是使用mimetex生成的。