TY - JOUR
T1 - TimeEvolver
T2 - A program for time evolution with improved error bound
AU - Michel, Marco
AU - Zell, Sebastian
N1 - Funding Information:
We are grateful to Lukas Eisemann for collaboration in the initial stages of this project, and we thank Gia Dvali for useful comments. Moreover, we are indebted to an anonymous referee for insightful feedback and many helpful suggestions. This work was supported in part, by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy via EXC-2111 - 390814868, Munich Center for Quantum Science and Technology and EXC-2094 - 390783311, Excellence Cluster Origins. The work of M.M. was supported by a Minerva Fellowship of the Minerva Stiftung Gesellschaft f?r die Forschung mbH, the Israel Science Foundation (grant No. 741/20) and by the Deutsche Forschungsgemeinschaft through a German-Israeli Project Cooperation (DIP) grant ?Holography and the Swampland?. The work of S.Z. was supported by ERC-AdG-2015 grant 694896.
Funding Information:
We are grateful to Lukas Eisemann for collaboration in the initial stages of this project, and we thank Gia Dvali for useful comments. Moreover, we are indebted to an anonymous referee for insightful feedback and many helpful suggestions. This work was supported in part, by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy via EXC-2111 - 390814868 , Munich Center for Quantum Science and Technology and EXC-2094 - 390783311 , Excellence Cluster Origins . The work of M.M. was supported by a Minerva Fellowship of the Minerva Stiftung Gesellschaft für die Forschung mbH , the Israel Science Foundation (grant No. 741/20 ) and by the Deutsche Forschungsgemeinschaft through a German-Israeli Project Cooperation (DIP) grant “Holography and the Swampland”. The work of S.Z. was supported by ERC-AdG-2015 grant 694896 .
Publisher Copyright:
© 2022 The Author(s)
PY - 2022/8/1
Y1 - 2022/8/1
N2 - We present TimeEvolver, a program for computing time evolution in a generic quantum system. It relies on well-known Krylov subspace techniques to tackle the problem of multiplying the exponential of a large sparse matrix iH, where H is the Hamiltonian, with an initial vector v. The fact that H is Hermitian makes it possible to provide an easily computable bound on the accuracy of the Krylov approximation. Apart from effects of numerical roundoff, the resulting a posteriori error bound is rigorous, which represents a crucial novelty as compared to existing software packages such as Expokit [1]. On a standard notebook, TimeEvolver allows to compute time evolution with adjustable precision in Hilbert spaces of dimension greater than 106. Additionally, we provide routines for deriving the matrix H from a more abstract representation of the Hamiltonian operator. Program summary: Program Title: TimeEvolver CPC Library link to program files: https://doi.org/10.17632/vvwvng9w36.1 Code Ocean capsule: https://codeocean.com/capsule/8431379 Developer's repository link: https://github.com/marco-michel/TimeEvolver Licensing provisions: MIT Programming language: C++ Supplementary material: An example which demonstrates the computation of time evolution in a concrete physical system. Nature of problem: Computing time evolution in a generic physical quantum system can be reduced to the numerical task of calculating exp(−iHt)v. Here H is the Hamiltonian matrix, which is large and sparse, i corresponds to the imaginary unit, t denotes time and the vector v represents the initial state. A program is needed to perform this computation efficiently. Since the use of approximation methods is unavoidable, it is important to quantify as rigorously as possible the resulting error. Moreover, in order to facilitate the application to various problems in physics, additional functionalities are needed, in particular for forming the Hamiltonian matrix from a more abstract representation of the Hamiltonian operator. Solution method: The program employs known Krylov subspace methods for calculation the exponential of the large sparse matrix (−iHt) times the vector v. The Arnoldi algorithm is used to form the Krylov subspace and exponentiation of the resulting small matrix is achieved by diagonalization. The fact that (−iHt) is anti-Hermitian makes it possible to calculate the error of the Krylov approximation in terms of an easily-computable integral formula. This allows to choose a maximal size of the time step, after which the method is restarted and a new Krylov subspace is formed, while respecting an adjustable error bound. It is rigorous up to inaccuracies of a one-dimensional numerical integral and effects of finite machine precision, for which we also give an estimate. All linear algebra operations are performed with the Intel® Math Kernel Library and Boost is used for numerical integration. The methods for deriving the Hamiltonian matrix rely on a hashtable representation of Hilbert space.
AB - We present TimeEvolver, a program for computing time evolution in a generic quantum system. It relies on well-known Krylov subspace techniques to tackle the problem of multiplying the exponential of a large sparse matrix iH, where H is the Hamiltonian, with an initial vector v. The fact that H is Hermitian makes it possible to provide an easily computable bound on the accuracy of the Krylov approximation. Apart from effects of numerical roundoff, the resulting a posteriori error bound is rigorous, which represents a crucial novelty as compared to existing software packages such as Expokit [1]. On a standard notebook, TimeEvolver allows to compute time evolution with adjustable precision in Hilbert spaces of dimension greater than 106. Additionally, we provide routines for deriving the matrix H from a more abstract representation of the Hamiltonian operator. Program summary: Program Title: TimeEvolver CPC Library link to program files: https://doi.org/10.17632/vvwvng9w36.1 Code Ocean capsule: https://codeocean.com/capsule/8431379 Developer's repository link: https://github.com/marco-michel/TimeEvolver Licensing provisions: MIT Programming language: C++ Supplementary material: An example which demonstrates the computation of time evolution in a concrete physical system. Nature of problem: Computing time evolution in a generic physical quantum system can be reduced to the numerical task of calculating exp(−iHt)v. Here H is the Hamiltonian matrix, which is large and sparse, i corresponds to the imaginary unit, t denotes time and the vector v represents the initial state. A program is needed to perform this computation efficiently. Since the use of approximation methods is unavoidable, it is important to quantify as rigorously as possible the resulting error. Moreover, in order to facilitate the application to various problems in physics, additional functionalities are needed, in particular for forming the Hamiltonian matrix from a more abstract representation of the Hamiltonian operator. Solution method: The program employs known Krylov subspace methods for calculation the exponential of the large sparse matrix (−iHt) times the vector v. The Arnoldi algorithm is used to form the Krylov subspace and exponentiation of the resulting small matrix is achieved by diagonalization. The fact that (−iHt) is anti-Hermitian makes it possible to calculate the error of the Krylov approximation in terms of an easily-computable integral formula. This allows to choose a maximal size of the time step, after which the method is restarted and a new Krylov subspace is formed, while respecting an adjustable error bound. It is rigorous up to inaccuracies of a one-dimensional numerical integral and effects of finite machine precision, for which we also give an estimate. All linear algebra operations are performed with the Intel® Math Kernel Library and Boost is used for numerical integration. The methods for deriving the Hamiltonian matrix rely on a hashtable representation of Hilbert space.
KW - Krylov subspace
KW - Numerical simulation
KW - Quantum mechanics
KW - Schrödinger equation
KW - Time evolution
KW - Unitary operator
UR - http://www.scopus.com/inward/record.url?scp=85129322906&partnerID=8YFLogxK
U2 - 10.1016/j.cpc.2022.108374
DO - 10.1016/j.cpc.2022.108374
M3 - Article
AN - SCOPUS:85129322906
SN - 0010-4655
VL - 277
JO - Computer Physics Communications
JF - Computer Physics Communications
M1 - 108374
ER -