TY - JOUR
T1 - OpenPSTD
T2 - The open source pseudospectral time-domain method for acoustic propagation
AU - Hornikx, M.C.J.
AU - Krijnen, T.F.
AU - van Harten, L.
PY - 2016/3/7
Y1 - 2016/3/7
N2 - 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. Program summary Program title: openPSTD v1.1 (v1.0 is the version without the GPU acceleration) Catalogue identifier: AFAA-v1-0 Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AFAA-v1-0.html Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: GNU General Public License, version 3 No. of lines in distributed program, including test data, etc.: 45339 No. of bytes in distributed program, including test data, etc.: 4139815 Distribution format: tar.gz Programming language: Python (as comes with Blender 2.72). Computer: Variable. Operating system: Windows, Linux, Mac OS X. RAM: From 250 MB for a typical geometry up to 1 GB for large geometries (with about 4M grid points) Classification: 4.3, 12. External routines: Blender 2.72, NumPy, SciPy, PyFFT, PyOpenCL, PyCUDA Nature of problem: Sound propagation Solution method: Fourier pseudospectral time-domain method Restrictions: Structured grid, two dimensions, real-valued boundary conditions only Unusual features: Implementation of code using Blender/Python including GPU acceleration; subdomain modelling within Fourier pseudospectral method Running time: Depending on the dimension of the problem, calculation times take minutes up to hours.
AB - 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. Program summary Program title: openPSTD v1.1 (v1.0 is the version without the GPU acceleration) Catalogue identifier: AFAA-v1-0 Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AFAA-v1-0.html Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: GNU General Public License, version 3 No. of lines in distributed program, including test data, etc.: 45339 No. of bytes in distributed program, including test data, etc.: 4139815 Distribution format: tar.gz Programming language: Python (as comes with Blender 2.72). Computer: Variable. Operating system: Windows, Linux, Mac OS X. RAM: From 250 MB for a typical geometry up to 1 GB for large geometries (with about 4M grid points) Classification: 4.3, 12. External routines: Blender 2.72, NumPy, SciPy, PyFFT, PyOpenCL, PyCUDA Nature of problem: Sound propagation Solution method: Fourier pseudospectral time-domain method Restrictions: Structured grid, two dimensions, real-valued boundary conditions only Unusual features: Implementation of code using Blender/Python including GPU acceleration; subdomain modelling within Fourier pseudospectral method Running time: Depending on the dimension of the problem, calculation times take minutes up to hours.
KW - Blender
KW - Fourier pseudospectral method
KW - GPU
KW - Linearized Euler equations
KW - Python
UR - http://www.scopus.com/inward/record.url?scp=84962439074&partnerID=8YFLogxK
U2 - 10.1016/j.cpc.2016.02.029
DO - 10.1016/j.cpc.2016.02.029
M3 - Article
SN - 0010-4655
VL - 203
SP - 298
EP - 308
JO - Computer Physics Communications
JF - Computer Physics Communications
ER -