CircuitEvolver
class CircuitEvolver(evolution_state, circuit, dt)
Bases: Evolver
A time-evolution engine based on quantum circuits.
This algorithm performs time-evolution by means of successively applying a quantum circuit corresponding to a single Trotter step to its internal state. More specifically, it builds out a tensor network in the CircuitState. As required by the DynamicMPF algorithm, it tracks a left- and right-hand side of the time-evolution for computing the overlap of two circuits. Depending on conjugate, an instance of this engine will apply the quantum gates of its template circuit to the corresponding side (see quimb_circuit for more details).
Initialize a CircuitEvolver instance.
Parameters
- evolution_state (CircuitState) – a reference to the time-evolution state.
- circuit (QuantumCircuit) – the template circuit encoding the time-evolution of a single Trotter step. This circuit must be parameterized (see
Parameterin place of the Trotter methods time step. This parameter must be nameddt. - dt (float) – the time step that will be used and later bound to the
Parameterof thecircuitobject.
Attributes
conjugate
Returns whether this time-evolver instance acts on the right-hand side.
evolved_time
Returns the current evolution time.
evolution_state
The time-evolution state (see also DynamicMPF.evolution_state).
circuit
The parameterized QuantumCircuit describing the Trotter step.
Methods
step
step()
Perform a single time step of TEBD.
This will apply the gates of the circuit to the evolution_state. If conjugate is True, it applies to CircuitState.lhs, otherwise to CircuitState.rhs.
Return type
None