An implementation of the open quantum system algorithm introduced in Ref. PhysRevLett.132.200403. It uses a representation of open quantum system dynamics in terms of infinite tensor networks. Specifically, the time-discrete influence functional is generated in a periodic tensor train form using infinite time evolving block decimation (iTEBD). This object can then be used to compute dynamics and steady states for open quantum systems with arbitrary stationary Gaussian baths (arbitrary stationary bath correlation function). Both Julia and Python implementations are available.
I do not provide a full documentation. The code is kept very simple, please read through the source file and the paper for details.
Currently, the python implementation can be used to solve open system problems with Hamiltonian
>>> MyiTEBD_TEMPO = iTEBD_TEMPO(np.diagonal(S), Delta, BCF, N_c)
To computing an open system problem, two steps are required. First the influence functional has to be contracted to tensor train form using iTEBD with SVD compression at a given tolerance. Decreasing the tolerance will yield a more accurate representation. This is the computationally demanding step.
>>> MyiTEBD_TEMPO.compute_f(rtol=1e-6)
Once the influence functional has been computed, we can compute dynamics. This returns the time evolution of the reduced system state
>>> Rho_t = MyiTEBD_TEMPO.evolve(H_S, Rho_0, N)
The computational effort is just linear in
>>> Rho_ss = MyiTEBD_TEMPO.steadystate(H_S)
All results should be checked for convergence with respect to the SVD compressions tolerance (rtol) and the Trotterization time step
Note that time-dependent Hamiltonians are supported in the Julia version only.
For a full example and test, consider cheking out the example notebook provided in the repo.
Please cite the corresponding publication https://doi.org/10.1103/PhysRevLett.132.200403.