slepc-3.21.1 2024-04-26
Report Typos and Errors

# BVMatArnoldi

Computes an Arnoldi factorization associated with a matrix.

### Synopsis

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

Collective

### Input Parameters

| V | - basis vectors context
| A | - the matrix
| H | - (optional) the upper Hessenberg matrix
| k | - number of locked columns
| m | - dimension of the Arnoldi basis, may be modified

### Output Parameters

| beta | - (optional) norm of last vector before normalization
| breakdown | - (optional) flag indicating that breakdown occurred

### Notes

Computes an m-step Arnoldi factorization for matrix A. 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 * H = beta*v_m * e_m^T

where the columns of V are the Arnoldi vectors (which are orthonormal), H is an upper Hessenberg matrix, e_m is the m-th vector of the canonical basis. On exit, beta contains the norm of V[m] before normalization.

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 an Arnoldi factorization from scratch, set k=0 and make sure the first column contains the normalized initial vector.

### See Also

BVMatLanczos(), BVSetActiveColumns(), BVOrthonormalizeColumn()

### Level

advanced

### 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