Numerical simulations are a powerful tool to study quantum systems beyond exactly solvable systems lacking an analytic expression. For one-dimensional entangled quantum systems, tensor network methods, amongst them Matrix Product States (MPSs), have attracted interest from different fields of quantum physics ranging from solid state systems to quantum simulators and quantum computing. Our open source MPS code provides the community with a toolset to analyze the statics and dynamics of one-dimensional quantum systems. Here, we present our open source library, Open Source Matrix Product States (OSMPS), of MPS methods implemented in Python and Fortran2003. The library includes tools for ground state calculation and excited states via the variational ansatz. We also support ground states for infinite systems with translational invariance. Dynamics are simulated with different algorithms, including three algorithms with support for long-range interactions. Convenient features include built-in support for fermionic systems and number conservation with rotational U(1) and discrete Z2 symmetries for finite systems, as well as data parallelism with MPI. We explain the principles and techniques used in this library along with examples of how to efficiently use the general interfaces to analyze the Ising and Bose–Hubbard models. This description includes the preparation of simulations as well as dispatching and post-processing of them. Program summaryProgram title: Open Source Matrix Product States (OSMPS), v2.0Program Files doi:http://dx.doi.org/10.17632/vxm2mcmk4v.1Licensing provisions: GNU GPL v3Programming language: Python, Fortran2003, MPI for parallel computingCompilers (Fortran): gfortran, ifort, g95Dependencies: The minimal requirements in addition to the Fortran compiler are BLAS, LAPACK, ARPACK, python, numpy, scipy. Additional packages for plotting include matplotlib, dvipng, and LATEX packages. The Expokit package, available at the homepage http://www.maths.uq.edu.au/expokit/, is required to use the Local Runge–Kutta time evolution.Supplementary material: We provide programs to reproduce selected figures in the Appendices.Nature of problem: Solving the ground state and dynamics of a many-body entangled quantum system is a challenging problem; the Hilbert space grows exponentially with system size. Complete diagonalization of the Hilbert space to floating point precision is limited to less than forty qubits.Solution method: Matrix Product States in one spatial dimension overcome the exponentially growing Hilbert space by truncating the least important parts of it. The error can be well controlled. Local neighboring sites are variationally optimized in order to minimize the energy of the complete system. We can target the ground state and low lying excited states. Moreover, we offer various methods to solve the time evolution following the many-body Schrödinger equation. These methods include e.g. theSuzuki–Trotter decompositions using local propagators or the Krylov method, both approximating the propagator on the complete Hilbert space.
Read full abstract