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. Program summaryProgram Title:quantumfdtd v3CPC Library link to program files:https://doi.org/10.17632/9p8zyvmdy2.1Developer's repository link:https://github.com/quantumfdtd/quantumfdtd_v3Licensing provisions: GPLv3Programming language:C++, Python, ShellJournal reference of previous version: [1–4]Does the new version supersede the previous version?: YesReasons for the new version: We extended the previous version of quantumfdtd, which solves the time-independent non-relativistic three-dimensional Schrödinger equation, to the case of the relativistic kinetic energy. Additionally, we have added the capability of using arbitrary three-dimensional potentials from external files. This functionality is required, for instance, in order to interface with lattice QCD code.Summary of revisions: (a) Include the case of the relativistic Schrödinger equation, (b) add two optimized Fast Fourier Transform (FFT) based kinetic energy terms for non-relativistic cases, and (c) support arbitrary external file-based potentials and the option to project out distinct parity eigen-states from the solutions. The new kinetic energy terms (two non-relativistic and one relativistic) are computed using the parallelized FFT-algorithm provided by the FFTW 3 library.Nature of problem: We compute the ground, first, and second excited states of the time-independent three-dimensional Schrödinger equation. As input, we accept a number of hard-coded, analytical, three-dimensional potentials, as well as arbitrary potentials via external files. The outputs of the program are the corresponding eigen-values and eigen-vectors (energies and wave-functions). We can also project out distinct parity eigen-states of the solutions.Solution method: The time-dependent Schrödinger equation is transformed to imaginary time. We use a parallelized iterative method to obtain the full three-dimensional time-independent eigen-states and eigen-values on large lattices. 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 old non-relativistic kinetic term is computed using the finite-difference time-domain (FDTD) algorithm. Finally, we provide several Python and Shell scripts for the analysis steps. This includes a Python program for projecting out distinct parity eigen-states from the solutions.Additional comments including restrictions and unusual features: We require the number of MPI processes being a divisor of the number N of spatial grid points. The following external programs/libraries are used and thus required:•MPI library•FFTW_MPI, version 3•GNU Scientific Library (GSL), linked to CBLAS•For some of the post-processing scripts, Python 3 is required References[1]A. Dumitru, Y. Guo, M. Strickland, Phys. Rev. D 79 (2009) 114003, https://doi.org/10.1103/PhysRevD.79.114003[2]A. Dumitru, Y. Guo, A. Mocsy, M. Strickland, Phys. Rev. D 79 (2009) 054019, https://doi.org/10.1103/PhysRevD.79.054019[3]M. Strickland, and D. Yager-Elorriaga, J. Compt. Phys. 229 (2010) 6015, https://doi.org/10.1016/j.jcp.2010.04.032[4]M. Margotta, K. McCarty, C. McGahan, M. Strickland, D. Yager-Elorriaga, Phys. Rev. D 83 (2011) 105019; Erratum: Phys. Rev. D 84 (2011) 069902, https://doi.org/10.1103/PhysRevD.83.105019
Read full abstract