tebd
full name: tenpy.algorithms.tebd
parent module:
tenpy.algorithms
type: module
Classes
|
Version of TEBD that relies on QR decompositions rather than SVD. |
|
Evolution of an MPS with random two-site unitaries in a TEBD-like fashion. |
|
Time Evolving Block Decimation (TEBD) algorithm. |
|
Variant of |
Module description
Time evolving block decimation (TEBD).
The TEBD algorithm (proposed in [vidal2004]) uses a trotter decomposition of the
Hamiltonian to perform a time evolution of an MPS. It works only for nearest-neighbor hamiltonians
(in tenpy given by a NearestNeighborModel
),
which can be written as \(H = H^{even} + H^{odd}\), such that \(H^{even}\) contains the
the terms on even bonds (and similar \(H^{odd}\) the terms on odd bonds).
In the simplest case, we apply first \(U=\exp(-i*dt*H^{even})\),
then \(U=\exp(-i*dt*H^{odd})\) for each time step \(dt\).
This is correct up to errors of \(O(dt^2)\), but to evolve until a time \(T\), we need
\(T/dt\) steps, so in total it is only correct up to error of \(O(T*dt)\).
Similarly, there are higher order schemata (in dt) (for more details see
TEBDEngine.update()
).
Remember, that bond i is between sites (i-1, i), so for a finite MPS it looks like:
| - B0 - B1 - B2 - B3 - B4 - B5 - B6 -
| | | | | | | |
| |----| |----| |----| |
| | U1 | | U3 | | U5 | |
| |----| |----| |----| |
| | |----| |----| |----|
| | | U2 | | U4 | | U6 |
| | |----| |----| |----|
| .
| .
| .
After each application of a Ui, the MPS needs to be truncated - otherwise the bond dimension chi would grow indefinitely. A bound for the error introduced by the truncation is returned.
If one chooses imaginary \(dt\), the exponential projects (for sufficiently long ‘time’ evolution) onto the ground state of the Hamiltonian.
Note
The application of DMRG is typically much more efficient than imaginary TEBD! Yet, imaginary TEBD might be useful for cross-checks and testing.