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
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#
BV: Basis Vectors, 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