slepc-3.17.2 2022-08-09
Report Typos and Errors

# BVMatLanczos

Computes a Lanczos factorization associated with a matrix.

### Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVMatLanczos(BV V,Mat A,PetscReal *alpha,PetscReal *beta,PetscInt k,PetscInt *m,PetscBool *breakdown)

Collective on V

### Input Parameters

| V | - basis vectors context
| A | - the matrix
| alpha | - diagonal entries of tridiagonal matrix
| beta | - subdiagonal entries of tridiagonal matrix
| k | - number of locked columns

### Input/Output Parameter

| m | - dimension of the Lanczos basis, may be modified

### Output Parameter

| breakdown | - (optional) flag indicating that breakdown occurred

### Notes

Computes an m-step Lanczos factorization for matrix A, with full reorthogonalization. At each Lanczos step, the corresponding Lanczos vector is orthogonalized with respect to all previous Lanczos vectors. This is equivalent to computing an m-step Arnoldi factorization and exploting symmetry of the operator.

The first k columns are assumed to be locked and therefore they are not modified. On exit, the following relation is satisfied

                       A * V - V * T = beta_m*v_m * e_m^T

where the columns of V are the Lanczos vectors (which are B-orthonormal), T is a real symmetric tridiagonal matrix, and e_m is the m-th vector of the canonical basis. The tridiagonal is stored as two arrays - alpha contains the diagonal elements, beta the off-diagonal. On exit, the last element of beta contains the B-norm of V[m] before normalization. The basis V must have at least m+1 columns, while the arrays alpha and beta must have space for at least m elements.

The breakdown flag indicates that orthogonalization failed, see BVOrthonormalizeColumn(). In that case, on exit m contains the index of the column that failed.

The values of k and m are not restricted to the active columns of V.

To create a Lanczos factorization from scratch, set k=0 and make sure the first column contains the normalized initial vector.

### See Also

BVMatArnoldi(), BVSetActiveColumns(), BVOrthonormalizeColumn()

Location: src/sys/classes/bv/interface/bvkrylov.c
Index of all BV routines
Table of Contents for all manual pages
Index of all manual pages