CircuitEvolver¶
- class CircuitEvolver(evolution_state, circuit, dt)[source]¶
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 theDynamicMPF
algorithm, 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_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 parametrized (see
Parameter
in 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
Parameter
of thecircuit
object.
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()[source]¶
Perform a single time step of TEBD.
This will apply the gates of the
circuit
to theevolution_state
. Ifconjugate
isTrue
, it applies toCircuitState.lhs
, otherwise toCircuitState.rhs
.- Return type:
None