Skip to content

Nevp

Configurations concerning the solution of NEVPs.

eig_compute_location#

eig_compute_location: Literal['numpy', 'cupy', 'nvmath'] = 'numpy'

Backend to use for computing eigenvalues.

This parameter determines whether to use NumPy, CuPy, or NVMath for computing eigenvalues in the NEVP solvers. The default is NumPy.

project_compute_location#

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

Backend to use for computing the projection matrices.

When using contour-based NEVP solvers, one needs to project the non-linear system onto a linear subspace. This can either be done using QR decomposition or by computing a singular value decomposition (SVD), which is controlled by the use_qr parameter.

The project_compute_location parameter determines whether to use NumPy or CuPy for this computation. The default is NumPy.

use_pinned_memory#

use_pinned_memory: bool = True

Whether to use pinned memory when transferring data in the NEVP solvers.

use_qr#

use_qr: bool = False

Whether to use QR decomposition or SVD for the projection.

When using contour-based NEVP solvers, one needs to project the non-linear system onto a linear subspace. This can either be done using QR decomposition or by computing a singular value decomposition (SVD). The use_qr parameter determines which method to use. The default is to use SVD, but QR decomposition can be significantly faster than SVD.

contour_batch_size#

contour_batch_size: PositiveInt | None = None

The batch size to use for the contour NEVP solvers.

The contour NEVP solvers require performing quadrature of an operator over a contour in the complex plane. Since this can lead to memory bottlenecks, the quadrature can be performed in batches. The contour_batch_size parameter determines the number of quadrature points to use in each batch. If set to None, the entire quadrature is performed in a single batch.

num_threads_contour#

num_threads_contour: PositiveInt = 1024

The number of GPU threads to use for computing the operator inverses in the contour NEVP solvers.

Only used if the GPU is available and the contour NEVP solvers are used.

reduce_sparsity#

reduce_sparsity: bool = False

Whether to reduce the sparsity of the matrices in the full NEVP solver.

The matrices arising in the full NEVP solver can contain some zero rows and columns, which can be removed to reduce the size of the eigenvalue problem.