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.

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 \(n\) fermionic modes to \(n\) 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.