qttools.nevp#
source package qttools.nevp
Classes
source class Beyn(r_o: float, r_i: float, m_0: int, num_quad_points: int, num_threads_contour: int = 1024, eig_compute_location: str = 'numpy', project_compute_location: str = 'numpy', use_qr: bool = False, contour_batch_size: int | None = None, use_pinned_memory: bool = True)
Bases : NEVP
Beyn's integral method for solving NEVP.1
This is implemented along the lines of what is described in 2.
Initializes the Beyn NEVP solver.
Parameters
-
r_o : float — The outer radius of the annulus for the contour integration.
-
r_i : float — The inner radius of the annulus for the contour integration.
-
m_0 : int — Guess for the number of eigenvalues that lie in the subspace.
-
num_quad_points : int — The number of quadrature points to use for the contour integration.
-
num_threads_contour : int, optional — The number of cuda threads to use for the contour integration kernel. Only relevant for GPU computations.
-
eig_compute_location : str, optional — The location where to compute the eigenvalues and eigenvectors. Can be either "numpy" or "cupy" or "nvmath".
-
project_compute_location : str, optional — The location where to compute the singular value or qr decomposition for the projector. Can be either "numpy" or "cupy".
-
use_qr : bool, optional — Whether to use QR decomposition for the projector instead of SVD. Default is
False. -
contour_batch_size : int, optional — The batch size for the contour integration kernel. If
None, the batch size is set tonum_quad_points. -
use_pinned_memory : bool, optional — Whether to use pinnend memory if cupy is used. Default is
True.
Bases : ABC
Abstract base class for the non-linear eigenvalue solvers.
source class Full(eig_compute_location: str = 'numpy', use_pinned_memory: bool = True, reduce: bool = False, a_xx_sparsity: tuple[sparse.csc_matrix, ...] | None = None)
Bases : NEVP
An NEVP solver based on linearization.
Implemented along the lines of what is described in 1.
Initializes the Full NEVP solver.
Parameters
-
eig_compute_location : str, optional — The location where to compute the eigenvalues and eigenvectors. Can be either "numpy" or "cupy" or "nvmath".
-
use_pinned_memory : bool, optional — Whether to use pinnend memory if cupy is used. Default is
True. -
reduce : bool, optional — Whether to reduce the problem size by eliminating columns that are zero in the first and last coefficient blocks. These columns correspond to eigenvalues that are infinity or zero.
-
a_xx_sparsity : tuple[sparse.csc_matrix, ...] or None, optional — The sparsity patterns of the coefficient blocks of the NEVP. If
reduceisTrue, this can be provided at instantiation to identify the zero columns and perform the reduction. IfreduceisTrueanda_xxis not provided, the zero columns will be identified at runtime, which may introduce some overhead.