CircuitEvolver¶
- class CircuitEvolver(evolution_state, circuit, dt)[source]¶
Bases:
EvolverA 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 theDynamicMPFalgorithm, it tracks a left- and right-hand side of the time-evolution for computing the overlap of two circuits. Depending onconjugate, an instance of this engine will apply the quantum gates of its template circuit to the corresponding side (seequimb_circuitfor more details).Initialize a
CircuitEvolverinstance.- 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
QuantumCircuitdescribing the Trotter step.
Methods
- step()[source]¶
Perform a single time step of TEBD.
This will apply the gates of the
circuitto theevolution_state. IfconjugateisTrue, it applies toCircuitState.lhs, otherwise toCircuitState.rhs.- Return type:
None