FermionicGaussianState#
- class FermionicGaussianState(transformation_matrix, occupied_orbitals=None, qubit_mapper=None, *, validate=True, rtol=1e-05, atol=1e-08, **circuit_kwargs)[source]#
Bases:
QuantumCircuit
A circuit that prepares a fermionic Gaussian state.
A fermionic Gaussian state is a state of the form
\[b^\dagger_1 \cdots b^\dagger_{N_p} \lvert \overline{\text{vac}} \rangle,\]where
\[\begin{split}\begin{pmatrix} b^\dagger_1 \\ \vdots \\ b^\dagger_N \\ \end{pmatrix} = W \begin{pmatrix} a^\dagger_1 \\ \vdots \\ a^\dagger_N \\ a_1 \\ \vdots \\ a_N \end{pmatrix}.\end{split}\]\(a^\dagger_1, \ldots, a^\dagger_{N}\) are the fermionic creation operators.
\(W\) is an \(N \times 2N\) matrix such that \(b^\dagger_1, \ldots, b^\dagger_{N}\) also satisfy the fermionic anticommutation relations.
\(\lvert \overline{\text{vac}} \rangle\) is the mutual 0-eigenvector of the operators \(\{b_j^\dagger b_j\}\).
The matrix \(W\) has the block form
\[\begin{pmatrix} W_1 & W_2 \end{pmatrix},\]where \(W_1\) and \(W_2\) must satisfy
\[\begin{split}W_1 W_1^\dagger + W_2 W_2^\dagger = I \\ W_1 W_2^T + W_2 W_1^T = 0.\end{split}\]The matrix \(W\) is commonly obtained by calling the
diagonalizing_bogoliubov_transform()
method of theQuadraticHamiltonian
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
- প্যারামিটার:
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 \(\{b^\dagger_j\}\) 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 callJordanWignerMapper()
.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.
- রেইজেস:
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 \((W_1 \quad W_2)\) where \(W_1 W_1^\dagger + W_2 W_2^\dagger = I\) and \(W_1 W_2^T + W_2 W_1^T = 0\).
NotImplementedError -- Currently, only the Jordan-Wigner Transform is supported. Please use the
qiskit_nature.second_q.mappers.JordanWignerMapper
.
Attributes
Methods