BogoliubovTransform#

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

Bases: QuantumCircuit

A circuit that performs a Bogoliubov transform.

A Bogoliubov transform effects a unitary basis change that maps the fermionic ladder operators to a new set of ladder operators that also satisfy the fermionic anticommutation relations. That is, it effects a unitary U such that

UajU=bj,j=1,,N

where the {aj} are the original fermionic creation operators and the {bj} are the new fermionic creation operators. The new creation operators are linear combinations of the original ladder operators, and the coefficients of the linear combinations are specified by a matrix W which determines the unitary U. The matrix W is either N×N or N×2N.

If W is N×N, then the linear combinations involve only the original creation operators:

(b1bN)=W(a1aN).

If W is N×2N, then the linear combinations involve both the original creation and annihilation operators:

(b1bN)=W(a1aNa1aN).

The matrix W is commonly obtained by calling the diagonalizing_bogoliubov_transform() method of the QuadraticHamiltonian class.

Currently, only the Jordan-Wigner Transformation is supported.

Referencias

Parámetros:
  • transformation_matrix (np.ndarray) – The matrix W that specifies the coefficients of the new creation operators in terms of the original creation operators. Should be either N×N or N×2N.

  • 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:
  • ValueErrortransformation_matrix must be a 2-dimensional array.

  • ValueErrortransformation_matrix must have orthonormal rows.

  • ValueErrortransformation_matrix does not describe a valid transformation of fermionic ladder operators. If the transformation matrix is N×N, then it should be unitary. If the transformation matrix is N×2N, then it should have 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