qiskit.synthesis.SuzukiTrotter(order=2, reps=1, insert_barriers=False, cx_structure='chain', atomic_evolution=None)
The (higher order) Suzuki-Trotter product formula.
The Suzuki-Trotter formulas improve the error of the Lie-Trotter approximation. For example, the second order decomposition is
Higher order decompositions are based on recursions, see Ref.  for more details.
In this implementation, the operators are provided as sum terms of a Pauli operator. For example, in the second order Suzuki-Trotter decomposition we approximate
: D. Berry, G. Ahokas, R. Cleve and B. Sanders, “Efficient quantum algorithms for simulating sparse Hamiltonians” (2006). arXiv:quant-ph/0508139 (opens in a new tab) : N. Hatano and M. Suzuki, “Finding Exponential Product Formulas of Higher Orders” (2005). arXiv:math-ph/0506007 (opens in a new tab)
- order (int (opens in a new tab)) – The order of the product formula.
- reps (int (opens in a new tab)) – The number of time steps.
- insert_barriers (bool (opens in a new tab)) – Whether to insert barriers between the atomic evolutions.
- cx_structure (str (opens in a new tab)) – How to arrange the CX gates for the Pauli evolutions, can be “chain”, where next neighbor connections are used, or “fountain”, where all qubits are connected to one.
- atomic_evolution (Callable (opens in a new tab)[[Pauli |SparsePauliOp, float (opens in a new tab)], QuantumCircuit] | None) – A function to construct the circuit for the evolution of single Pauli string. Per default, a single Pauli evolution is decomposed in a CX chain and a single qubit Z rotation.
ValueError (opens in a new tab) – If order is not even
Return the settings in a dictionary, which can be used to reconstruct the object.
A dictionary containing the settings of this product formula.
NotImplementedError (opens in a new tab) – If a custom atomic evolution is set, which cannot be serialized.
evolution (PauliEvolutionGate) – The evolution gate to synthesize.
A circuit implementing the evolution.