qrunch.quantum.circuits.trotter.suzuki_trotter

Even-order Suzuki-Trotter product-formula Trotterization.

Classes

SuzukiTrotter

Even-order Suzuki-Trotter product-formula Trotterization.

class SuzukiTrotter

Bases: TrotterizationStrategy

Even-order Suzuki-Trotter product-formula Trotterization.

Implements the time-symmetric Suzuki product formula of order \(2k \in \{2, 4\}\). The first-order formula is provided separately by FirstOrderTrotter. The second-order formula is

\[S_2(t) = \left(\prod_{j=1}^{m} e^{-i c_j P_j \frac{t}{2n}} \prod_{j=m}^{1} e^{-i c_j P_j \frac{t}{2n}}\right)^n,\]

with error \(O(t^3 / n^2)\). Higher orders are constructed recursively via the Yoshida / Suzuki fractal decomposition:

\[S_{2k}(t) = [S_{2k-2}(p_k\, t)]^2\, S_{2k-2}((1-4p_k)\,t)\, [S_{2k-2}(p_k\, t)]^2, \quad p_k = \frac{1}{4 - 4^{1/(2k-1)}}.\]

The error of the order-\(2k\) formula scales as \(O(t^{2k+1} / n^{2k})\).

__init__(order: Literal[2, 4], decomposer: TrotterDecomposer | None = None) None

Initialise a Suzuki-Trotter strategy.

Parameters:
  • order (Literal[2, 4]) – Product-formula order: 2 or 4.

  • decomposer (TrotterDecomposer | None) – Strategy for decomposing the Hamiltonian into gates within the forward sweep of each Trotter step. Defaults to PauliTrotterDecomposer.

Return type:

None

trotterize(hamiltonian: HermitianPauliSum, time: float, trotter_steps: int) Circuit

Construct the Suzuki-Trotter circuit for \(e^{-iHt}\).

Parameters:
  • hamiltonian (HermitianPauliSum) – The Hermitian Pauli Hamiltonian to Trotterize.

  • time (float) – Total evolution time \(t\). May be a symbolic Parameter.

  • trotter_steps (int) – Number of Trotter steps \(n \geq 1\).

Return type:

Circuit