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^* \]

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