The relativistic Schrödinger equation through FFTW 3: An extension of quantumfdtd
Description
In order to solve the time-independent three-dimensional Schrödinger equation, one can transform the time-dependent Schrödinger equation to imaginary time and use a parallelized iterative method to obtain the full three-dimensional eigen-states and eigen-values on very large lattices. In the case of the non-relativistic Schrödinger equation, there exists a publicly available code called quantumfdtd which implements this algorithm. In this paper, we (a) extend the quantumfdtd code to include the case of the relativistic Schrödinger equation and (b) add two optimized Fast Fourier Transform (FFT) based kinetic energy terms for non-relativistic cases. The new kinetic energy terms (two non-relativistic and one relativistic) are computed using the parallelized FFT-algorithm provided by the FFTW 3 library. The resulting quantumfdtd v3 code, which is publicly released with this paper, is backwards compatible with version 2, supporting explicit finite-differences schemes in addition to the new FFT-based schemes. Finally, we (c) extend the original code so that it supports arbitrary external file-based potentials and the option to project out distinct parity eigen-states from the solutions. Herein, we provide details of the quantumfdtd v3 implementation, comparisons and tests of the three new kinetic energy terms, and code documentation.