A julia package for finite MPS/MPO-based computations of ground-state, finite-temperature and dynamical properties.
- FiniteMPS.jl integrates multiple algorithms for studying a quantum many-body system: DMRG for ground state, tanTRG for finite-T and TDVP for dynamics, see Tutorial/Heisenberg.
- Both spin and fermion systems are supported, see Tutorial/Hubbard.
- The MPS-level operations are separated with the lower tensor-level operations so that modifying codes with different symmetries, lattices and models is quite simple.
- We provide an interface to adding arbitrary multi-site interactions so that the Hamiltonian MPO can be generated in a simple and general way, see Tutorial/Hamiltonian.
- We also provide a similar interface for calculating arbitrary observables (e.g. multi-site correlations), see Tutorial/Observable.
- We use the state-of-the-art tensor library TensorKit.jl to perform the basic tensor operations, so that non-abelian symmetries can significantly accelerate computations.
- The hamiltonian MPO can be represented as a sparse one with abstract horizontal bonds so that the interaction terms can be distributed to different threads or workers, together with nested multi-threaded BLAS (with the help of MKL.jl).
-
Controlled bond expansion (CBE) techniques are implemented (modified for compatibility with parallelism) to reduce the complexity, e.g.
$O(D^3d^2)$ to$O(D^3d)$ for DMRG and TDVP.
FiniteMPS.jl is a registered package. To install it, just press "]" in julia REPL and type
pkg> add FiniteMPSA short tutorial to use this package is provided in documentation, in where we give some demo scripts that solve ground-state, finite-T and dynamical properties of concrete models.
If you encounter any problem, please feel free to contact us (liqiaoyi@itp.ac.cn) or submit an issue.