Transpiler Passes
This module provides various transpiler passes for the stages explained in qiskit_fermions.transpiler.
Optimization Passes
These passes provide different kinds of optimization of FermionicDAGCircuit instances.
MergeOrbitalRotations() | A transpilation pass merging runs of consecutive orbital rotations into a single one. |
MergeSlaterDeterminantPreparation() | A transpilation pass fusing an initialization and rotation into a Slater determinant prep. |
QDriftTrotterization(num_terms, *[, ...]) | A transpilation pass to Trotterize Evolution gates via the qDRIFT protocol. |
RelabelModes([permutation, solver]) | A transpilation pass to relabel the fermionic modes. |
Layouting Passes
These passes are designed to help configuring the global F2QLayout setting for the transpilation process. This setting needs to be placed in the f2q_layout field of the property_set, from where it will be read during the Synthesis Passes.
TrivialF2QLayout() | Trivially maps fermionic modes to qubits. |
CustomF2QLayout(layout) | Sets the user-provided F2QLayout in the transpiler. |
Synthesis Passes
The main logic for mapping a FermionicDAGCircuit to a DAGCircuit is implemented by a single synthesis pass, namely the F2QSynthesis. It is conceptually similar to Qiskit’s HighLevelSynthesis because it simply iterates over the FermionicDAGCircuit instructions and delegates the mapping to qubit-based instructions to Transpiler Pass Plugins for each of the encountered types of FermionicGate.
F2QSynthesis([config]) | A transpilation pass to map fermion-based circuit instructions to qubit-based ones. |
F2QSynthesisConfig | The dictionary type used to configure the F2QSynthesis.methods. |