Skip to content

qttools.nevp.full#

source module qttools.nevp.full

Classes

  • Full An NEVP solver based on linearization.

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 reduce is True, this can be provided at instantiation to identify the zero columns and perform the reduction. If reduce is True and a_xx is not provided, the zero columns will be identified at runtime, which may introduce some overhead.


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