PauliTrotterEvolution
class PauliTrotterEvolution(trotter_mode='trotter', reps=1)
Bases: qiskit.opflow.evolutions.evolution_base.EvolutionBase
An Evolution algorithm replacing exponentiated sums of Paulis by changing them each to the Z basis, rotating with an rZ, changing back, and Trotterizing.
More specifically, we compute basis change circuits for each Pauli into a single-qubit Z, evolve the Z by the desired evolution time with an rZ gate, and change the basis back using the adjoint of the original basis change circuit. For sums of Paulis, the individual Pauli evolution circuits are composed together by Trotterization scheme.
Parameters
- trotter_mode (
Union
[str
,TrotterizationBase
,None
]) – A string (‘trotter’, ‘suzuki’, or ‘qdrift’) to pass to the TrotterizationFactory, or a TrotterizationBase, indicating how to combine individual Pauli evolution circuits to equal the exponentiation of the Pauli sum. - reps (
Optional
[int
]) – How many Trotterization repetitions to make, to improve the approximation accuracy. - evolution. (# TODO uncomment when we implement Abelian grouped) –
- group_paulis (#) – Whether to group Pauli sums into Abelian
- sub-groups (#) –
- group (so a single diagonalization circuit can be used for each) –
- Pauli. (# rather than each) –
Methods Defined Here
convert
PauliTrotterEvolution.convert(operator)
Traverse the operator, replacing EvolvedOps
with CircuitOps
containing Trotterized evolutions equalling the exponentiation of -i * operator.
Parameters
operator (OperatorBase
) – The Operator to convert.
Return type
Returns
The converted operator.
evolution_for_abelian_paulisum
PauliTrotterEvolution.evolution_for_abelian_paulisum(op_sum)
Evolution for abelian pauli sum
Return type
evolution_for_pauli
PauliTrotterEvolution.evolution_for_pauli(pauli_op)
Compute evolution Operator for a single Pauli using a PauliBasisChange
.
Parameters
pauli_op (PauliOp
) – The PauliOp
to evolve.
Return type
Returns
A PrimitiveOp
, either the evolution CircuitOp
or a PauliOp
equal to the identity if pauli_op is the identity.