FermionicLieTrotter

class FermionicLieTrotter(reps=1)

Bases: FermionicSuzukiTrotter

The first-order Lie-Trotter product formula, applied in fermionic space.

Given an Evolution gate with the evolution time \(t\), this synthesizes the approximation

\[e^{-i t \sum_j H_j} \approx \prod_j e^{-i t H_j},\]

emitting one Evolution gate per factor \(H_j\), each evolving for the whole time \(t\) – or, with reps repetitions, for \(t/\texttt{reps}\) apiece across that many sweeps.

The operator is split into the \(H_j\), and each factor narrowed to the modes it actually touches, exactly as described for FermionicSuzukiTrotter.

First order is the degenerate case of the Suzuki recursion, so this is implemented as a FermionicSuzukiTrotter with the order fixed to 1; the two are interchangeable at equal reps. It keeps a name of its own because it is the default synthesis of an Evolution gate, and because a plain first-order product formula is more recognizable under that name than as an argument to a higher-order one.

Note

This product formula is exact only when the factors mutually commute. Grouping an operator so that each group collects mutually commuting terms therefore both shortens the circuit and reduces the Trotter error. Where the factors do not commute, an even order reduces the error further at the same grouping.

Note also that applying it at all is optional: leaving the gate undecomposed and letting the fermion-to-qubit stage handle the whole operator incurs no Trotter error at this level. See synthesis.

The Hermiticity requirement on the individual factors, described in the FermionicSuzukiTrotter documentation, applies here too.

Initializing an instance of this synthesis method can be done with the argument below.

Parameters:

reps (int) – the number of times to repeat the formula, each repetition evolving for time / reps.

Raises:

ValueError – if reps is not positive.

Attributes

order

The order of the product formula.

reps

The number of times the product formula is repeated.

Inherited Methods

synthesize(gate)

Synthesizes the gate into the ordered factors of the product formula.

See the class documentation for the formula this implements.

Parameters:

gate (Evolution) – the gate to synthesize.

Returns:

A FermionicCircuit holding one narrowed Evolution gate per factor of the formula. A factor may appear more than once, at different evolution times.

Return type:

FermionicCircuit