Open AidanGG opened 4 years ago
Sounds good! It might make sense to have a different subclass like TEBDImag
(or something) to be very explicit and which can simply override a minimal set of methods (and add some like regularly computing the energy for example).
This is the current approach I'm taking in the 2D PR, where SimpleUpdate
and FullUpdate
are both imaginary time algorithms. Would be nice to roughly converge 1D TEBD and 2D TEBD stuff.
Two suggestions for TEBD:
Imaginary time evolution. I propose adding another kwarg to
TEBD.__init__
which controls imaginary time evolution and removes the-1.0j
inget_gate
.split_opts
will then have to requirerenorm: True
to maintain normalisation.MPO density matrix inputs. By extending to mixed states, unitary evolution can still be performed, but with imaginary time evolution, we can e.g. generate Hamiltonian thermal states represented as MPOs. (ref: https://arxiv.org/abs/cond-mat/0406440)
I'm going to start working on some PRs to address these.