This code simulates the time evolution of a quantum system of interacting two-level systems (qubits).
The dynamics is determined by: (1) a Hamiltonian, which corresponds to the unitary part of the time evolution, and (2) dissipative terms, which account for the fact that the system is coupled to an environment.
These two types of terms enter the so-called Lindblad equation that determines the evolution of the density matrix of the system.
Since we have
The present code offers an approximate solution of the problem that can be very accurate for large systems (typically up to
Two publications in which some simulation results obtained with this code have been described:
https://doi.org/10.1103/PhysRevLett.124.043601
https://doi.org/10.1103/PhysRevB.102.064301
An MPS is a particular way to encode
a many-body wave-function using a set of matrices. Consider a system made of
where in this expression the sum runs over the
where, for each qubit
What determines the dimensions of the matrices? If the matrices are one-dimensional (scalar) one has a trivial product state (and all product states can be written this way). On the other hand, if one allows for very large matrices, of size
What about mixed states? They can be represented using so-called matrix-product operators (MPO),
where each
MPS can allow to store reliably a quantum state with a huge memory gain (compression) when the state is not too entangled. As explained above,
we should expect that, for a given level of accuracy, the size of the matrices in an MPS will scale as the exponential of the bipartite entanglement entropy (associated to the bi-partition on that 'bond'). In the context of MPS the matrix sizes
The representation of the pure state in terms of an MPS is therefore all the more efficient as the corresponding pure-state is weakly entangled. By 'more efficient' we mean here that, for a given level of accuracy, the size of the matrices in the MPS will be smaller. Alternatively, if the matrix sizes are fixed, a weakly entangled state will be more precisely represented by an MPS than a highly entangled one.
For a review see for instance: https://doi.org/10.1016/j.aop.2010.09.012
In a parallel way, an operator acting linearly on a many-body state (like a Hamiltonian, an osbservable, or a time-evolution operator) can be encoded as a matrix-product operator (MPO). While short-range Hamiltonian in 1D can be expressed exaclty as MPO with a finite bond dimenion which does not depend on the system size, it is not the case in higher dimension or when the MPO encodes a nontricial density matrix.
There are also several powerful alogithms to compute and manipulate quantum states in the form of MPS. The most famous one is the celebrated Density-Matrix Renormalizatio Group (aka DMRG), introduced by S. R. White in 1992 (https://doi.org/10.1103/PhysRevLett.69.2863). It allows to approximate the ground-state of the Hamiltonian of a one-dimensional (1D) system with short-ranged interactions in the form of an MPS. It can also be extended to longer range interactions and to two-dimensional systems, although the system sizes that can be studied in the latter cases are smaller than for 1D systems. The applicability and the efficiency of DMRG again depends on the amount of entanglement present in the targetted states.
We again refer here to the review by U. Schollwöck: https://doi.org/10.1016/j.aop.2010.09.012
A mixed state can be viewed as a pure state in some enlarged Hibert space with dimension squared.
This is the so-called vectorization, and it is heavily used in this code. For a single qubit a density matrix can be viewed as one vector (= a pure state of some fictitious system) in a space of dimension 4.
In this code a many-body density matrix is considered as a pure state of a (fictitious) system with
This can sometimes be source of confusion: the density matrix is of course an operator acting on the physical Hilbert space of the qubits, but, after vectorization, we interpret it as a pure state, and thus as an MPS.
Some references relevant to the use of MPS and MPO for quantum dissipative systems:
https://doi.org/10.1103/PhysRevLett.93.207204
https://doi.org/10.1103/PhysRevLett.93.207205
http://dx.doi.org/10.1088/1742-5468/2009/02/P02035
The representation of the many-body density matrix of the system in terms of an MPS is all the more efficient as the corresponding pure state (of the fictitious system) is weakly entangled. So, it is natural to consider the von Neumann entanglement entropy of the pure-state (of the fictitious system) obtained from the vectorization of the density matrix (of the real system). We stress that this quantity is not the von Neuman entropy of the real system, it is instead called the Operator Space Entanglement Entropy (OSEE) [https://doi.org/10.1103/PhysRevA.76.032316]. So, for a given target accuracy, the smaller the OSEE the smaller the bond dimension of the MPS (and the fastest the numerical calculations). In practice we instead often fix some maximum bond dimension for the MPS. Then, the smaller the OSEE of the physical state the better the MPS approximation will be.
The present code is based on the C++ ITensor library, version 3, from https://www.itensor.org. See also the following paper: https://arxiv.org/abs/2007.14822 . The library allows to construct and manipulate MPS and MPO in a simple way and it allows to run DMRG calculations. It also allows to compute the time-evolution of a system where the state is encoded as an MPS and its Hamiltonian is encoded as an MPO.