Circuit LibraryΒΆ

This module provides a library of FermionicGate implementations.

Evolution(num_modes, operator[, time, ...])

Implements the time evolution of an operator.

InitializeModes(occupation)

Prepares (or, under simulation, certifies) a fermionic mode occupation.

OrbitalRotation(rotation_unitary)

Implements an orbital rotation.

PrepareSlaterDeterminant(occupation, ...)

Prepares a Slater determinant from an occupation and an orbital rotation.

UCC(uccsd_op)

Implements the unitary coupled-cluster singles and doubles (UCCSD) ansatz.

UCJ(ucj_op)

Implements the (local) unitary cluster Jastrow ((L)UCJ) ansatz.

Measurement is the one non-unitary operation a FermionicCircuit can carry, so it is a FermionicInstruction rather than a FermionicGate:

FermionicMeasure(*args[, _force_mutable])

A measurement of a single fermionic mode, writing its outcome into one classical bit.

Should an Evolution gate be decomposed in fermionic space (an optional step) how that is done is determined by a synthesis method from the synthesis module.