generate_time_evolution_circuit¶
- generate_time_evolution_circuit(operator, *, synthesis=None, time=1.0)[source]¶
Model the time evolution of an operator.
>>> from qiskit.quantum_info import SparsePauliOp >>> from qiskit.synthesis import SuzukiTrotter >>> from qiskit.transpiler import CouplingMap >>> from qiskit_addon_utils.problem_generators import ( ... PauliOrderStrategy, ... generate_xyz_hamiltonian, ... generate_time_evolution_circuit, ... )
>>> coupling_map = CouplingMap.from_line(6) >>> hamiltonian = generate_xyz_hamiltonian( ... coupling_map, ... coupling_constants=(0.4, 0.4, 0.0), ... ext_magnetic_field=(0.0, 0.0, 0.6), ... pauli_order_strategy=PauliOrderStrategy.InteractionThenColorZigZag, ... )
>>> circ = generate_time_evolution_circuit( ... hamiltonian, synthesis=SuzukiTrotter(order=2, reps=2), time=2.0 ... ) >>> _ = circ.draw("mpl", fold=-1)
- Parameters:
operator (SparsePauliOp) – The operator for which to model the time evolution.
synthesis (EvolutionSynthesis | None) – A synthesis strategy. If
None
, the default synthesis is the Lie-Trotter product formula with a single repetition.time (float) – The evolution time.
- Returns:
A
QuantumCircuit
implementing a time-evolved operator.- Return type: