Another method of achieving the goal of stable propagation with high accuracy, is to use the so-called split-step FFT method, in which the differential operator is calculated in Fourier space. This technique involves the use of periodic boundary conditions, but has the advantage that the inverse differential operator is completely trivial in Fourier space!
The Fourier transform on a computer is a DISCRETE Fourier transform, as obviously one cannot Fourier transform over a continuous domain. These have many applications in computational physics, experimental data processing and image processing.
It is an especially useful method in higher dimensions, as inverting a Fourier transform is much faster than inverting a large multi-dimensional matrix. The FFT operator is usually defined for these discrete Fourier transforms, as
A more subtle point is the indexing convention with FFTs, which
typically identifies
(zero momentum) with the first lattice
site in reciprocal space, say at
in Matlab. Positive
values then correspond to
, where the definition
of
is given by examination of the relationship between the
discrete approximation to the Fourier transform, and the usual
integral form; this leads to the results that:
. The first negative value of
is then obtained by
using the
site, and reducing the lattice number from its highest
value, to give increasingly negative
values! The value of
at
is ambiguous, and can be given either a positive or negative
value.
Thus, the total method for propagating a distance
for
the diffusion problem, can be written in just one step, as:
| (B.9) | ||
| (B.10) |
To use this method more generally with nonlinear terms, requires one
Fourier step like this, then a nonlinear step in the
-domain,
then a further Fourier step. The total method can then be written in
two steps, as:
![]() |
(B.11) |
Here, in general, the midpoint value of
is
to be solved for implicitly, since
is
present on both sides of the equation. This can be achieved simply in
two or three iterations. In the Schrödinger equation--either linear
or nonlinear--iteration isn't needed, since we can write:
| (B.12) |
| (B.13) |
Paul Cochrane 2002-04-18