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 Hermitian 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^*Bx\) rather than the
standard form \((x,y)=y^Hx\).
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#
BV: Basis Vectors, BVGetMatrix(), BVDot(), BVNorm(), BVOrthogonalize(), BVSetDefiniteTolerance()
Level#
advanced
Location#
Examples#
Index of all BV routines Table of Contents for all manual pages Index of all manual pages