Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

PauliTrotterEvolution

class PauliTrotterEvolution(trotter_mode='trotter', reps=1)

GitHub

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) –

Attributes

trotter

Type: qiskit.aqua.operators.evolutions.trotterizations.trotterization_base.TrotterizationBase

TrotterizationBase used to evolve SummedOps.

Return type

TrotterizationBase


Methods

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

OperatorBase

Returns

The converted operator.

evolution_for_abelian_paulisum

PauliTrotterEvolution.evolution_for_abelian_paulisum(op_sum)

Evolution for abelian pauli sum

Return type

PrimitiveOp

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

PrimitiveOp

Returns

A PrimitiveOp, either the evolution CircuitOp or a PauliOp equal to the identity if pauli_op is the identity.

Was this page helpful?
Report a bug or request content on GitHub.