Skip to content

qttools.nevp#

source package qttools.nevp

Classes

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

  • NEVP Abstract base class for the non-linear eigenvalue solvers.

  • Full An NEVP solver based on linearization.

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.

source class NEVP()

Bases : ABC

Abstract base class for the non-linear eigenvalue solvers.

source class Full(eig_compute_location: str = 'numpy', use_pinned_memory: bool = True)

Bases : NEVP

An NEVP solver based on linearization.

Warning

This solver will create very large matrices and should only be used for very small problems. It is intended as a reference implementation and should probably not be used in production code.

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

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


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

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