Pseudo-spectral method

From Wikipedia, the free encyclopedia

Gaussian wavepacket scattering off square well — simulation using pseudo-spectral method
Gaussian wavepacket scattering off square well — simulation using pseudo-spectral method

Pseudo-spectral methods are a class of numerical methods used in applied mathematics and scientific computing for the solution of PDEs, such as the direct simulation of a particle with an arbitrary wavefunction interacting with an arbitrary potential. They are related to spectral methods and are used extensively in computational fluid dynamics and other areas, but are demonstrated below on an example from quantum physics.

Contents

[edit] Background

The Schrödinger wave equation,

H \psi(\mathbf{r},t) = i \hbar \frac{\partial}{\partial t} \psi(\mathbf{r},t)

can be written

\frac{H}{i \hbar} \psi(\mathbf{r},t) = \frac{\partial}{\partial t} \psi(\mathbf{r},t)

which bears remarkable resemblance to the linear ordinary differential equation

r f(t) = \frac{d}{dt} f(t)

with solution

f(t) = A e^{r t} \,\!

In fact, using the theory of linear operators, it can be shown that the general solution to the Schrödinger wave equation is

\psi(\mathbf{r},t) = e^{-i H t / \hbar} \psi(\mathbf{r},0)

where exponentiation of operators is defined using power series. Now remember that

H = T + V \,\!

where the kinetic energy, T , is given by

T = \frac{p^2}{2 m} = - \frac{\hbar^2}{2m} \nabla^2

and the potential energy, V often depends only on position, written V(\mathbf{r}). We can write

\psi(\mathbf{r},t) = e^{-i (T + V(\mathbf{r})) t / \hbar} \psi(\mathbf{r},0)

It is tempting to write

\psi(\mathbf{r},t) = e^{-i T t / \hbar} e^{-i V(\mathbf{r}) t / \hbar}\psi(\mathbf{r},0)

so that we may treat each factor separately. However, this is only true if the operators T and V(\mathbf{r}) commute, which is not true in general. Luckily, it turns out that

\psi(\mathbf{r},t) \approx e^{-i V(\mathbf{r}) t / 2 \hbar} e^{-i T t / \hbar} e^{-i V(\mathbf{r}) t / 2 \hbar}\psi(\mathbf{r},0)

is a good approximation for small values of t. This is known as the symmetric decomposition. The heart of the pseudo-spectral method is using this approximation iteratively to calculate the wavefunction \psi(\mathbf{r},t) for arbitrary values of t.

[edit] The method

For simplicity, we will consider the one-dimensional case. The method is readily extended to multiple dimensions.

Given ψ(x,t), we wish to find ψ(x,t + Δt) where Δt is small. The first step is to calculate an intermediate value φ1(x) by applying the rightmost operator in the symmetric decomposition,

\phi_{1}(x) = e^{-i V(\mathbf{r}) \Delta t / 2 \hbar}\psi(x,t)

This requires only a pointwise multiplication. The next step is to apply the middle operator,

\phi_{2}(x) = e^{-i T \Delta t / \hbar} \phi_{1}(x)

This is an infeasible calculation to make in configuration space. Fortunately, in momentum space, the calculation is greatly simplified. If Φ1(k) is the momentum space representation of φ1(x), then

\Phi_{2}(k) = e^{i \hbar k^{2} \Delta t / 2 m} \Phi_{1}(k)

which also requires only a pointwise multiplication. Numerically, Φ1(k) is obtained from φ1(x) using the Fast Fourier transform (FFT) and φ2(x) is obtained from Φ2(k) using the inverse FFT.

The final calculation is

\psi(x,t + \Delta t) = e^{-i V(\mathbf{r}) \Delta t / 2 \hbar}\phi_{2}(x)

This sequence can be summarized as

\psi(x,t + \Delta t) = e^{-i V(\mathbf{r}) \Delta t / 2 \hbar} \mathcal{F}^{-1} [e^{i \hbar k^{2} \Delta t / 2 m} \mathcal{F} [e^{-i V(\mathbf{r}) \Delta t / 2 \hbar}\psi(x,t)] ]

[edit] Analysis of algorithm

If the wavefunction is approximated by its value at n distinct points, each iteration requires 3 pointwise multiplications, one FFT, and one inverse FFT. The pointwise multiplications each require O(n) effort, and the FFT and inverse FFT each require O(nlgn) effort. The total computational effort is therefore determined largely by the FFT steps, so it is imperative to use an efficient (and accurate) implementation of the FFT. Fortunately, many are freely available.

[edit] Error analysis

The error in the pseudo-spectral method is overwhelmingly due to discretization error.

Needed: a more in-depth error analysis