TEBDEvolver

class TEBDEvolver(*args, dt=0.1, **kwargs)[source]

Bases: TEBDEngine, Evolver

A TEBD algorithm for evolving an internal MPO.

As discussed in more detail in tenpy_tebd, this extension of TeNPy’s existing TEBDEngine implementation time-evolves an internal matrix product operator (MPO) rather than the conventional matrix product state (MPS).

More concretely, the internal object is expected to be an MPOState.

Warning

The API of this class is actually much larger than shown here, because it inherits additional methods from the TEBDEngine base class. However, we do not duplicate that API here.

Initialize a TEBDEvolver instance.

Parameters:
  • args – any positional arguments will be forwarded to the TEBDEngine constructor.

  • dt (float) – the time step to be used by this time-evolution instance.

  • kwargs – any further keyword arguments will be forwarded to the TEBDEngine constructor.

Attributes

conjugate

Returns whether this time-evolver instance acts on the right-hand side.

evolved_time

Returns the current evolution time.

dt

The time step to be used by this time-evolution instance.

Methods

step()[source]

Perform a single time step of TEBD.

This essentially calls run_evolution() and forwards the value of dt that was provided upon construction.

Return type:

None

update_bond(i, U_bond)[source]

Update the specified bond.

Overwrites the original (MPS-based) implementation to support an MPO as the shared state.

Parameters:
  • i (int) – the bond index.

  • U_bond (Array) – the bond to update.

Returns:

The truncation error.

Return type:

float