PauliEvolutionGate¶

class
PauliEvolutionGate
(operator, time=1.0, label=None, synthesis=None)[source]¶ Bases:
qiskit.circuit.gate.Gate
Timeevolution of an operator consisting of Paulis.
For an operator \(H\) consisting of Pauli terms and (real) evolution time \(t\) this gate implements
\[U(t) = e^{itH}.\]This gate serves as a highlevel definition of the evolution and can be synthesized into a circuit using different algorithms.
The evolution gates are related to the Pauli rotation gates by a factor of 2. For example the time evolution of the Pauli \(X\) operator is connected to the Pauli \(X\) rotation \(R_X\) by
\[U(t) = e^{itX} = R_X(2t).\]References:
[1] G. Li et al. Paulihedral: A Generalized BlockWise Compiler Optimization Framework For Quantum Simulation Kernels (2021). [arXiv:2109.03371]
 Parameters
operator (Pauli  PauliOp  SparsePauliOp  PauliSumOp  list) – The operator to evolve. Can also be provided as list of noncommuting operators where the elements are sums of commuting operators. For example:
[XY + YX, ZZ + ZI + IZ, YY]
.time (
Union
[int
,float
,ParameterExpression
]) – The evolution time.label (
Optional
[str
]) – A label for the gate to display in visualizations.synthesis (
Optional
[EvolutionSynthesis
]) – A synthesis strategy. If None, the default synthesis is the LieTrotter product formula with a single repetition.
Methods Defined Here
Invert this instruction.
Gate parameters should be int, float, or ParameterExpression
Attributes

condition_bits
¶ Get Clbits in condition.
 Return type
List
[Clbit
]

decompositions
¶ Get the decompositions of the instruction from the SessionEquivalenceLibrary.

definition
¶ Return definition in terms of other basic gates.

duration
¶ Get the duration.

label
¶ Return instruction label
 Return type
str

params
¶ return instruction params.

time
¶ Return the evolution time as stored in the gate parameters.
 Return type
Union
[float
,ParameterExpression
] Returns
The evolution time.

unit
¶ Get the time unit of duration.