|View source on GitHub|
Simulate Hamiltonian evolution using a Trotter-Suzuki product formula.
openfermion.circuits.simulate_trotter( qubits: Sequence[cirq.Qid], hamiltonian:
openfermion.circuits.trotter.trotter_algorithm.Hamiltonian, time: float, n_steps: int = 1, order: int = 0, algorithm: Optional[
openfermion.circuits.TrotterAlgorithm] = None, control_qubit: Optional[cirq.Qid] = None, omit_final_swaps: bool = False ) -> cirq.OP_TREE
Used in the notebooks
|Used in the tutorials|
The input is a Hamiltonian represented as an InteractionOperator or DiagonalCoulombHamiltonian. Not all types are supported by all algorithm options.
The product formula used is from "General theory of fractal path integrals with applications to many-body theories and statistical physics" by Masuo Suzuki.
||The qubits on which to apply operations. They should be sorted so that the j-th qubit in the Sequence holds the occupation of the j-th fermionic mode.|
||The Hamiltonian to simulate.|
||The evolution time.|
||The number of Trotter steps to use. Default is 1.|
||The order of the product formula. The value indexes symmetric formulae, e.g., a value of 2 indicates a second-order symmetric, sometimes known as a fourth-order, Trotter formula. A value of 0 indicates an asymmetric Trotter formula. Default is 0.|
||The algorithm to use to simulate a single Trotter step. This is a constant exposed in the openfermion.trotter module. If not specified, a default option will be chosen based on the type of the given Hamiltonian. Available options: LINEAR_SWAP_NETWORK: The algorithm from arXiv:1711.04789. Requires the input to be a DiagonalCoulombHamiltonian. LOW_RANK: The "low rank" strategy. Requires the input to be an InteractionOperator. SPLIT_OPERATOR: The algorithm from arXiv:1706.00023. Requires the input to be a DiagonalCoulombHamiltonian.|
||A qubit on which to control the Trotter step.|
||If this is set to True, then SWAP or FSWAP gates at the end of the circuit may be omitted. This option exists because certain Trotter step algorithms, such as those based on swap networks, induce a permutation on the qubits or on the ordering in which qubits represent fermionic modes. For instance, algorithms based on swap networks may reverse the qubits depending on the number of Trotter steps used and the order of the Trotter formula selected. Setting this option to True will sometimes result in a circuit with fewer gates, but with the ordering of qubits or modes reversed in the final wavefunction.|