openPSTD: the open source pseudospectral time-domain method for acoustic propagation
收藏资源简介:
An open source implementation of the Fourier pseudospectral time-domain (PSTD) method for computing the propagation of sound is presented, which is geared towards applications in the built environment. Being a wave-based method, PSTD captures phenomena like diffraction, but maintains efficiency in processing time and memory usage as it allows to spatially sample close to the Nyquist criterion, thus keeping both the required spatial and temporal resolution coarse. In the implementation it has been opted to model the physical geometry as a composition of rectangular two-dimensional subdomains, hence initially restricting the implementation to orthogonal and two-dimensional situations. The strategy of using subdomains divides the problem domain into local subsets, which enables the simulation software to be built according to Object-Oriented Programming best practices and allows room for further computational parallelization. The software is built using the open source components, Blender, Numpy and Python, and has been published under an open source license itself as well. For accelerating the software, an option has been included to accelerate the calculations by a partial implementation of the code on the Graphical Processing Unit (GPU), which increases the throughput by up to fifteen times. The details of the implementation are reported, as well as the accuracy of the code.
本文提出了一种用于声波传播模拟的傅里叶伪谱时域(Fourier pseudospectral time-domain, PSTD)方法开源实现,其适配建筑环境相关应用场景。作为一种基于波动方程的求解方法,PSTD可捕捉衍射等波动现象,同时兼顾计算时长与内存占用的效率:其允许空间采样率接近奈奎斯特采样准则(Nyquist criterion),因此可将所需的空间与时间分辨率维持在较低水平。本实现将物理几何建模为矩形二维子域的组合,因此最初将适用范围限定于正交场景与二维工况。采用子域划分的策略可将问题域拆分为若干局部子集,这使得仿真软件能够遵循面向对象编程(Object-Oriented Programming, OOP)的最佳实践进行开发,同时为后续的计算并行化预留了拓展空间。该软件基于Blender、Numpy与Python等开源组件开发,自身亦采用开源许可证进行发布。为提升软件运行效率,实现中加入了通过在图形处理器(Graphical Processing Unit, GPU)上部分部署代码以加速计算的选项,可将计算吞吐量提升最高达15倍。本文详述了该实现的具体细节,并验证了代码的计算精度。




