FermionicGaussianState#

class FermionicGaussianState(transformation_matrix, occupied_orbitals=None, qubit_mapper=None, *, validate=True, rtol=1e-05, atol=1e-08, **circuit_kwargs)[fuente]#

Bases: QuantumCircuit

A circuit that prepares a fermionic Gaussian state.

A fermionic Gaussian state is a state of the form

b1bNp|vac,

where

(b1bN)=W(a1aNa1aN).
  • a1,,aN are the fermionic creation operators.

  • W is an N×2N matrix such that b1,,bN also satisfy the fermionic anticommutation relations.

  • |vac is the mutual 0-eigenvector of the operators {bjbj}.

The matrix W has the block form

(W1W2),

where W1 and W2 must satisfy

W1W1+W2W2=IW1W2T+W2W1T=0.

The matrix W is commonly obtained by calling the diagonalizing_bogoliubov_transform() method of the QuadraticHamiltonian class. This matrix is used to create circuits that prepare eigenstates of the quadratic Hamiltonian.

Currently, only the Jordan-Wigner transformation is supported.

Reference: arXiv:1711.05395

Parámetros:
  • transformation_matrix (np.ndarray) – The matrix W that specifies the coefficients of the new creation operators in terms of the original creation and annihilation operators. This matrix must satisfy special constraints, as detailed above.

  • occupied_orbitals (Sequence[int] | None) – The pseudo-particle orbitals to fill. These refer to the indices of the operators {bj} from the main body of the docstring of this function. The default behavior is to use the empty set of orbitals, which corresponds to a state with zero pseudo-particles.

  • qubit_mapper (QubitMapper | None) – The QubitMapper. The default behavior is to create one using the call JordanWignerMapper().

  • validate (bool) – Whether to validate the inputs.

  • rtol (float) – Relative numerical tolerance for input validation.

  • atol (float) – Absolute numerical tolerance for input validation.

  • circuit_kwargs – Keyword arguments to pass to the QuantumCircuit initializer.

Muestra:
  • ValueError – transformation_matrix must be a 2-dimensional array.

  • ValueError – transformation_matrix must have shape (n_orbitals, 2 * n_orbitals).

  • ValueError – transformation_matrix does not describe a valid transformation of fermionic ladder operators. A valid matrix has the block form (W1W2) where W1W1+W2W2=I and W1W2T+W2W1T=0.

  • NotImplementedError – Currently, only the Jordan-Wigner Transform is supported. Please use the qiskit_nature.second_q.mappers.JordanWignerMapper.

Attributes

Methods