tebd¶
full name: tenpy.algorithms.tebd
parent module:
tenpy.algorithms
type: module
Classes

Time Evolving Block Decimation (TEBD) ‘engine’. 

Evolution of an MPS with random twosite unitaries in a TEBDlike fashion. 
Module description
Time evolving block decimation (TEBD).
The TEBD algorithm (proposed in [Vidal2004]) uses a trotter decomposition of the
Hamiltonian to perform a time evoltion of an MPS. It works only for nearestneigbor 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 Engine.update()
).
Remember, that bond i is between sites (i1, 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 usefull for crosschecks and testing.