Skip to content

Band edge

Parameters concerning the eigenvalue-based band-edge tracking.

use_eigvalsh#

use_eigvalsh: bool = True

Whether to use eigvalsh when computing the band edges.

The non-linear eigenvalue problem

\[ \left[\mathbf{H} + \mathbf{\Sigma}^R(E)\right] \boldsymbol{\psi} = E \boldsymbol{\psi}, \]

which needs to be solved to compute the band edges is in principle a general eigenvalue problem. However, since we only care about real eigenvalues and the energy renormalization due to the Hermitian part of \(\Sigma^R\), we can just solve the Hermitian part of the problem using eigvalsh. This is significantly faster than solving the full non-linear eigenvalue problem, but it is an approximation if scattering is included.

Only relevant if band_edge_tracking = True.

eigvalsh_compute_location#

eigvalsh_compute_location: Literal['numpy', 'cupy'] = 'numpy'

Location where to compute the eigenvalues.

The eigenvalues can be computed either on the CPU using NumPy or on the GPU using CuPy. The default is to use NumPy.

Only relevant if band_edge_tracking = True.

use_pinned_memory#

use_pinned_memory: bool = True

Whether to use pinned memory when transferring data in the band-edge tracking computation.

Only relevant if band_edge_tracking = True.

block_sections#

block_sections: PositiveInt = 1

The number of block sections to use when computing the band edges.