---
title: TEBDEvolver (latest version)
description: API reference for qiskit_addon_mpf.backends.tenpy_tebd.TEBDEvolver in the latest version of qiskit-addon-mpf
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit-addon-mpf/backends-tenpy-tebd-tebd-evolver
---

# TEBDEvolver

*class* `TEBDEvolver(*args, dt=0.1, **kwargs)`

[GitHub](https://github.com/Qiskit/qiskit-addon-mpf/tree/stable/0.3/qiskit_addon_mpf/backends/tenpy_tebd/evolver.py#L29-L182)

Bases: [`TEBDEngine`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine "(in TeNPy v1.0.5)"), [`Evolver`](/docs/api/qiskit-addon-mpf/backends#evolver "qiskit_addon_mpf.backends.interface.Evolver")

A TEBD algorithm for evolving an internal MPO.

As discussed in more detail in [`tenpy_tebd`](/docs/api/qiskit-addon-mpf/backends-tenpy-tebd#module-qiskit_addon_mpf.backends.tenpy_tebd "qiskit_addon_mpf.backends.tenpy_tebd"), this extension of TeNPy’s existing [`TEBDEngine`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine "(in TeNPy v1.0.5)") 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`](/docs/api/qiskit-addon-mpf/backends-tenpy-tebd-mpo-state "qiskit_addon_mpf.backends.tenpy_tebd.MPOState").

> **Warning**
>
> The API of this class is actually much larger than shown here, because it inherits additional methods from the [`TEBDEngine`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine "(in TeNPy v1.0.5)") base class. However, we do not duplicate that API here.

Initialize a [`TEBDEvolver`](#qiskit_addon_mpf.backends.tenpy_tebd.TEBDEvolver "qiskit_addon_mpf.backends.tenpy_tebd.TEBDEvolver") instance.

**Parameters**

- **args** – any positional arguments will be forwarded to the [`TEBDEngine`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine "(in TeNPy v1.0.5)") constructor.
- **dt** ([*float*](https://docs.python.org/3/library/functions.html#float)) – the time step to be used by this time-evolution instance.
- **kwargs** – any further keyword arguments will be forwarded to the [`TEBDEngine`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine "(in TeNPy v1.0.5)") 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

`step()`

[GitHub](https://github.com/Qiskit/qiskit-addon-mpf/tree/stable/0.3/qiskit_addon_mpf/backends/tenpy_tebd/evolver.py#L78-L84)

Perform a single time step of TEBD.

This essentially calls [`run_evolution()`](https://tenpy.readthedocs.io/en/latest/reference/tenpy.algorithms.tebd.TEBDEngine.html#tenpy.algorithms.tebd.TEBDEngine.run_evolution "(in TeNPy v1.0.5)") and forwards the value of [`dt`](#qiskit_addon_mpf.backends.tenpy_tebd.TEBDEvolver.dt "qiskit_addon_mpf.backends.tenpy_tebd.TEBDEvolver.dt") that was provided upon construction.

**Return type**

None

### update\_bond

`update_bond(i, U_bond)`

[GitHub](https://github.com/Qiskit/qiskit-addon-mpf/tree/stable/0.3/qiskit_addon_mpf/backends/tenpy_tebd/evolver.py#L86-L182)

Update the specified bond.

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

**Parameters**

- **i** ([*int*](https://docs.python.org/3/library/functions.html#int)) – the bond index.
- **U\_bond** ([*Array*](https://tenpy.readthedocs.io/en/latest/reference/tenpy.linalg.np_conserved.Array.html#tenpy.linalg.np_conserved.Array "(in TeNPy v1.0.5)")) – the bond to update.

**Returns**

The truncation error.

**Return type**

[float](https://docs.python.org/3/library/functions.html#float)
