slepc-3.22.2 2024-12-02
Report Typos and Errors

BVSetMatrix

Specifies the inner product to be used in orthogonalization.

Synopsis

#include "slepcbv.h" 
PetscErrorCode BVSetMatrix(BV bv,Mat B,PetscBool indef)
Collective

Input Parameters

bv  - the basis vectors context
B  - a symmetric matrix (may be NULL)
indef  - a flag indicating if the matrix is indefinite

Notes

This is used to specify a non-standard inner product, whose matrix representation is given by B. Then, all inner products required during orthogonalization are computed as (x,y)_B=y^H*B*x rather than the standard form (x,y)=y^H*x.

Matrix B must be real symmetric (or complex Hermitian). A genuine inner product requires that B is also positive (semi-)definite. However, we also allow for an indefinite B (setting indef=PETSC_TRUE), in which case the orthogonalization uses an indefinite inner product.

This affects operations BVDot(), BVNorm(), BVOrthogonalize(), and variants.

Setting B=NULL has the same effect as if the identity matrix was passed.

See Also

BVGetMatrix(), BVDot(), BVNorm(), BVOrthogonalize(), BVSetDefiniteTolerance()

Level

advanced

Location

src/sys/classes/bv/interface/bvbasic.c

Examples

src/eps/tutorials/ex47.c


Index of all BV routines
Table of Contents for all manual pages
Index of all manual pages