OpenPSTD: The open source pseudospectral time-domain method for acoustic propagation

Research output: Contribution to journalArticleAcademicpeer-review

11 Citations (Scopus)
4 Downloads (Pure)

Abstract

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.

Original languageEnglish
Pages (from-to)298-308
Number of pages11
JournalComputer Physics Communications
Volume203
DOIs
Publication statusPublished - 7 Mar 2016

Fingerprint

acoustic propagation
Acoustics
Processing
Geometry
Acoustic waves
Windows operating system
computer programs
Object oriented programming
Tar
Random access storage
Computer programming languages
geometry
object-oriented programming
Diffraction
licensing
Throughput
Boundary conditions
Ireland
programming languages
tars

Keywords

  • Blender
  • Fourier pseudospectral method
  • GPU
  • Linearized Euler equations
  • Python

Cite this

@article{0237917636db49cba7b550dea06ee42f,
title = "OpenPSTD: The open source pseudospectral time-domain method for acoustic propagation",
abstract = "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.",
keywords = "Blender, Fourier pseudospectral method, GPU, Linearized Euler equations, Python",
author = "M.C.J. Hornikx and T.F. Krijnen and {van Harten}, L.",
year = "2016",
month = "3",
day = "7",
doi = "10.1016/j.cpc.2016.02.029",
language = "English",
volume = "203",
pages = "298--308",
journal = "Computer Physics Communications",
issn = "0010-4655",
publisher = "Elsevier",

}

OpenPSTD : The open source pseudospectral time-domain method for acoustic propagation. / Hornikx, M.C.J.; Krijnen, T.F.; van Harten, L.

In: Computer Physics Communications, Vol. 203, 07.03.2016, p. 298-308.

Research output: Contribution to journalArticleAcademicpeer-review

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

VL - 203

SP - 298

EP - 308

JO - Computer Physics Communications

JF - Computer Physics Communications

SN - 0010-4655

ER -