qdk_chemistry.algorithms.qubit_hamiltonian_solver module
QDK/Chemistry qubit hamiltonian solver abstractions and utilities.
This module provides the base classes QubitHamiltonianSolver and QubitHamiltonianSolverFactory for solving qubit Hamiltonians for ground state energies using various algorithms.
- qdk_chemistry.algorithms.qubit_hamiltonian_solver.davidson_solver(csr_matrix: object, tol: SupportsFloat = 1e-08, max_m: SupportsInt = 20) tuple
Diagonalize a sparse matrix using the Davidson eigensolver.
This function finds the lowest eigenvalue and corresponding eigenvector of a sparse matrix.
- Parameters:
- Returns:
eigenvalue: float, the lowest eigenvalue foundeigenvector: numpy.ndarray, corresponding eigenvector
- Return type:
tuple of (float, numpy.ndarray)
- Raises:
RuntimeError – If the Davidson solver fails to converge or encounters numerical issues
- qdk_chemistry.algorithms.qubit_hamiltonian_solver.syev_solver(matrix: Annotated[numpy.typing.ArrayLike, numpy.float64]) tuple
Solve a dense matrix eigenvalue problem using LAPACK’s syev.
This function computes all eigenvalues and eigenvectors of a dense matrix.
- Parameters:
matrix (numpy.ndarray) – Dense matrix.
- Returns:
eigenvalues: numpy.ndarray, the eigenvalues of the matrix in ascending ordereigenvectors: numpy.ndarray, the eigenvectors of the matrix, where each column corresponds to an eigenvector
- Return type:
tuple of (numpy.ndarray, numpy.ndarray)
- Raises:
ValueError – If the input matrix is not square or symmetric.
RuntimeError – If LAPACK fails to compute the eigenvalues.
- class qdk_chemistry.algorithms.qubit_hamiltonian_solver.QubitHamiltonianSolver[source]
Bases:
AlgorithmAbstract base class for solving a qubit Hamiltonian.
- class qdk_chemistry.algorithms.qubit_hamiltonian_solver.QubitHamiltonianSolverFactory[source]
Bases:
AlgorithmFactoryFactory class for creating QubitHamiltonianSolver instances.
- class qdk_chemistry.algorithms.qubit_hamiltonian_solver.SparseMatrixSolverSettings[source]
Bases:
SettingsSettings configuration for a SparseMatrixSolver.
- SparseMatrixSolver-specific settings:
tol (float, default=1e-8): Tolerance for the solver. max_m (int, default=20): Maximum subspace dimension for the solver.
- class qdk_chemistry.algorithms.qubit_hamiltonian_solver.SparseMatrixSolver(tol=1e-8, max_m=20)[source]
Bases:
QubitHamiltonianSolverQubit Hamiltonian solver using sparse matrix methods.
- class qdk_chemistry.algorithms.qubit_hamiltonian_solver.DenseMatrixSolver[source]
Bases:
QubitHamiltonianSolverQubit Hamiltonian solver using dense matrix methods.