Source code: https://github.com/simple-dmrg/sophisticated-dmrg/
This code is an expanded density-matrix renormalization group (DMRG) program, based on code written for a tutorial given originally at the 2013 summer school on quantum spin liquids, in Trieste, Italy. It implements DMRG its traditional formulation (i.e. without using matrix product states). DMRG is a numerical method that allows for the efficient simulation of quantum model Hamiltonians. Since it is a low-entanglement approximation, it often works quite well for one-dimensional systems, giving results that are nearly exact.
Typical implementations of DMRG in C++ or Fortran can be tens of thousands of lines long. Here, we have attempted to strike a balance between clear, simple code, and including many features and optimizations that would exist in a production code. One thing that helps with this is the use of Python. We have tried to write the code in a very explicit style, hoping that it will be (mostly) understandable to somebody new to Python.
Beyond the features already existing in simple-dmrg (infinite and finite system algorithms, conserved abelian quantum numbers, and eigenstate prediction), sophisticated-dmrg offers the following improvements:
Planned and potential features¶
- use disk (not RAM) for persistent storage
- efficient representation of the Hamiltonian (if easily possible in python)
- time-dependent DMRG
- custom Lanczos
- fermions and fermionic Hubbard models
- models for ladder systems
- site-dependent hopping terms (e.g. to implement “hopping disorder”)
Highly unlikely future features¶
- rewrite in terms of matrix product states
- non-abelian symmetries (e.g. SU(2))