Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeas_v1_0.tar.gz(4031 Kbytes)
Manuscript Title: FFT-split-operator code for solving the Dirac equation in 2+1 dimensions
Authors: Guido R. Mocken, Christoph H. Keitel
Program title: Dirac++ or (abbreviated) d++
Catalogue identifier: AEAS_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 178(2008)868
Programming language: C++.
Computer: Any, but SMP systems are preferred.
Operating system: Linux and MacOS X are actively supported by the current version. Earlier versions were also tested successfully on IRIX and AIX.
Number of processors used: Generally unlimited, but best scaling with 2-4 processors for typical problems.
RAM: 160 Megabytes minimum for the examples given here.
Keywords: Dirac, split-operator, C++, geometric algebra.
PACS: 02.70.-c, 31.15.-p, 31.30.Jv.
Classification: 2.7.

External routines: FFTW Library [3, 4], Gnu Scientific Library [5], bzip2, bunzip2, renice.

Nature of problem:
The relativistic time evolution of wave functions according to the Dirac equation is a challenging numerical task. Especially for an electron in the presence of high intensity laser beams and/or highly charged ions, this type of problem is of considerable interest to atomic physicists.

Solution method:
The code employs the split-operator method [1, 2], combined with fast Fourier transforms (FFT) for calculating any occurring spatial derivatives, to solve the given problem. An autocorrelation spectral method [6] is provided to generate a bound state for use as the initial wave function of further dynamical studies.

The code in its current form is restricted to problems in two spatial dimensions. Otherwise it is only limited by CPU time and memory that one can afford to spend on a particular problem.

Unusual features:
The code features dynamically adapting position and momentum space grids to keep execution time and memory requirements as small as possible. It employs an object-oriented approach, and it relies on a Clifford algebra class library to represent the mathematical objects of the Dirac formalism which we employ. Besides that it includes a feature (typically called "checkpointing" ) which allows the resumption of an interrupted calculation.

Additional comments:
Along with the program's source code, we provide several sample configuration files, a pre-calculated bound state wave function, and template files for the analysis of the results with both MatLab and Igor Pro.

Running time:
Running time ranges from a few minutes for simple tests up to several days, even weeks for real-world physical problems that require very large grids or very small time steps.

[1] J. A. Fleck, J. R. Morris, M. D. Feit, Time-dependent propagation of high energy laser beams through the atmosphere, Appl. Phys. 10 (1976) 129-160.
[2] R. Heather, An asymptotic wavefunction splitting procedure for propagating spatially extended wavefunctions: application to intense field photodissociation of H+2 , Comput. Phys. Commun. 63 (1991) 446.
[3] M. Frigo, S. G. Johnson, FFTW: An adaptive software architecture for the FFT, in: Prococeedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, Vol. 3, IEEE, 1998, pp. 1381 1384.
[4] M. Frigo, S. G. Johnson, The design and implementation of FFTW3, in: Proceedings of the IEEE, Vol. 93, IEEE, 2005, pp. 216 231. URL http://www.fftw.org/
[5] M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, M. Booth, F. Rossi, GNU Scientific Library Reference Manual, 2nd Edition, Network Theory Limited, 2006. URL http://www.gnu.org/software/gsl/
[6] M. D. Feit, J. A. Fleck, A. Steiger, Solution of the Schrödinger equation by a spectral method, J. Comput. Phys. 47 (1982) 412 433.