qrunch.quantum.circuits.trotter.suzuki_trotter
Even-order Suzuki-Trotter product-formula Trotterization.
Classes
Even-order Suzuki-Trotter product-formula Trotterization. |
- class SuzukiTrotter
Bases:
TrotterizationStrategyEven-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:
2or4.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: