Pseudospectral time-domain method
Template:Short description Template:Distinguish

In computational physics, pseudospectral time-domain method (PSTD) is a numerical analysis technique for simulating wave propagation. Being a part of the general class of pseudo-spectral methods, it is an extension of the finite-difference time-domain method (FDTD): in PSTD, the spatial derivative terms of the wave equation are evaluated in the spectral domain using orthogonal bases, such as Fourier or Chebyshev bases while the problem is temporally discretized.
Introduced in the late 1990s,[1][2][3] PSTD is widely used in acoustic, electromagnetic and geophysical simulations of complex and large-scale media,[4] with a wide variety of applications such as photoacoustic imaging,[5] geophysical imaging,[6] light scattering,[7] plasma physics[8] and ultrasonics.[9] The method is implemented in open-source acoustics codes such as k-Wave[10] and openPSTD.[11]
Theory
The main concepts behind PSTD can be illustrated through the one-dimensional scalar wave equation:
where is the field component and is the wave speed. At a fixed point in time, this field component can be decomposed into an orthogonal basis, such as the Fourier basis. The main concept behind the PSTD algorithm is evaluating the spatial derivatives in this spectral-domain, while using finite difference approximations to compute temporal derivatives. As an example, the derivatives can be represented in the Fourier basis as:[1][12]
where is the Fourier operator and is the spatial frequency. Fourier transforms can be calculated efficiently through the fast Fourier transform; this formulation enables the spatial resolution of field components in coarser meshes compared to the FDTD method, being only limited by the Nyquist–Shannon sampling theorem.[1] This imposes periodic boundary conditions at the simulation boundaries, effectively causing the propagating fields to wrap around. These effects can be alleviated through the use of perfectly matched layers for the absorption of incident waves. One of the main disadvantages of this approach is the possible artifacts, due to Gibbs phenomenon, which are observed for spatial discontinuities and large contrasts, as well as for discontinuous source conditions. The resolution in this case can be improved with non-uniform fast Fourier transform. Another alternative approach is using Chebyshev polynomials as spatial basis functions, which are evaluated at Chebyshev nodes to minimize Runge phenomenon. This method is generally known as Chebyshev PSTD.[13] Chebyshev PSTD methods can be extended to multidomain decomposition for modeling wave propagation in curved geometries.[14]
Time integration im PSTD algorithms are typically performed through the leapfrog integration scheme as in FDTD; nevertheless, Courant number of PSTD method is times smaller than FDTD, requiring finer time steps per unit mesh to be numerically stable. As an alternative, Runge–Kutta methods can be used to perform time integration.[13]
See also
Further reading
References
Template:Reflist Template:Numerical PDE
- ↑ 1.0 1.1 1.2 1.3 Cite error: Invalid
<ref>tag; no text was provided for refs named "liu1997". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "kabakian1996". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "yang1997". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "liu1999". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "cox2007". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "virieux2011". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "liu2012". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "vay2013". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "treeby2012". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "treeby2010". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "hornikx2016". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "liu1998". - ↑ 13.0 13.1 Cite error: Invalid
<ref>tag; no text was provided for refs named "liu2004". - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs named "fan2002".