openfermioncirq.trotter.TrotterStep

class openfermioncirq.trotter.TrotterStep(hamiltonian: Union[openfermion.ops._fermion_operator.FermionOperator, openfermion.ops._qubit_operator.QubitOperator, openfermion.ops._interaction_operator.InteractionOperator, openfermion.ops._diagonal_coulomb_hamiltonian.DiagonalCoulombHamiltonian])[source]

A method for performing a Trotter step.

This class assumes that Hamiltonian evolution using a Trotter-Suzuki product formula is performed in the following steps:

  1. Perform some preparatory operations (for instance, a basis change).
  2. Perform a number of Trotter steps. Each Trotter step may induce a permutation on the ordering in which qubits represent fermionic modes.
  3. Perform some finishing operations.
hamiltonian

The Hamiltonian being simulated.

__init__(hamiltonian: Union[openfermion.ops._fermion_operator.FermionOperator, openfermion.ops._qubit_operator.QubitOperator, openfermion.ops._interaction_operator.InteractionOperator, openfermion.ops._diagonal_coulomb_hamiltonian.DiagonalCoulombHamiltonian]) → None[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(hamiltonian, …) Initialize self.
finish(qubits, n_steps, control_qubit, …) Operations to perform after all Trotter steps are done.
prepare(qubits, control_qubit) Operations to perform before doing the Trotter steps.
step_qubit_permutation(qubits, control_qubit) The qubit permutation induced by a single Trotter step.
trotter_step(qubits, time, control_qubit) Yield operations to perform a Trotter step.