Numerical implementation

In practical numerical implementations, another step is required; the differential operator $ \mathcal{D}$ must also be approximated on a discrete lattice, since the computer is unable to store a continuously infinite set of initial values of $ \mbf{A}$ at every spatial point.

The overall process can be summarised, by defining a temporal lattice $ t_n = (t_0,\ldots{},t_N)$ together with a spatial lattice $ \mbf{x}_l =
(\mbf{x}_1,\ldots{},\mbf{x}_L)$, from $ l = 1,\ldots{},L$, and labeling $ \mbf{A}_l(t) = \mbf{A}(t,\mbf{x}_l)$. Generally, it is simplest to use a constant transverse lattice spacing of $ \Delta x = x_{l+1} -
x_l$. The different components of the vector field $ \mbf{A}$ also need to be labeled explicitly in a numerical approach; we label them with the superscript $ i = 1,\ldots{},I$ if necessary. With this notation, and assuming that $ U$ is a purely local function (only depends on the value of $ \mbf{A}$ at the same location in space), we have the EULER method:

$\displaystyle A^i_l(t_{n+1}) - A^i_l(t_n) = \Delta t \Bigl( \sum_{j,l'} \mathcal{D}^{i,j}_{l,l'} A^j_{l'}(t_n) + U^i_l [\mbf{A}_l(t_n)] \Bigr),$ (A.2)

Another way to write this equation, which might be clearer, is in a more abstract notation as:

$\displaystyle \mbf{A}(t_{n+1}) = [1 + \Delta t\mbf{D}] \mbf{A}(t_{n}) + \Delta t \mbf{U}[\mbf{A}(t_{n})],$ (A.3)

In this last equation, there is an implied summation over all the vector indices (if they exist) and lattice indices. The process is then repeated $ N$ times, with results stored for plotting purposes as often as required.

Paul Cochrane 2002-04-18