Skip to content

qttools.nevp.beyn#

source module qttools.nevp.beyn

Classes

  • Beyn Beyn's integral method for solving NEVP.1

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". Only relevant if cupy is used.

  • 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". Only relevant if cupy is used.

  • 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 to num_quad_points.

  • use_pinned_memory : bool, optional Whether to use pinnend memory if cupy is used. Default is True.


  1. W.-J. Beyn, An integral method for solving nonlinear eigenvalue problems, Linear Algebra and its Applications, 2012. 

  2. S. Brück, Ab-initio Quantum Transport Simulations for Nanoelectronic Devices, ETH Zurich, 2017.