slepc-3.7.4 2017-05-17
Report Typos and Errors

BVOrthogonalize

Orthogonalize all columns (except leading ones), that is, compute the QR decomposition.

Synopsis

#include "slepcbv.h"   
PetscErrorCode BVOrthogonalize(BV V,Mat R)
Collective on BV

Input Parameter

V  - basis vectors

Output Parameters

V  - the modified basis vectors
R  - a sequential dense matrix (or NULL)

Notes

On input, matrix R must be a sequential dense Mat, with at least as many rows and columns as the number of active columns of V. The output satisfies V0 = V*R (where V0 represent the input V) and V'*V = I.

If V has leading columns, then they are not modified (are assumed to be already orthonormal) and the corresponding part of R is not referenced.

Can pass NULL if R is not required.

The method to be used for block orthogonalization can be set with BVSetOrthogonalization(). If set to GS, the computation is done column by column with successive calls to BVOrthogonalizeColumn().

If V is rank-deficient or very ill-conditioned, that is, one or more columns are (almost) linearly dependent with respect to the rest, then the algorithm may break down or result in larger numerical error. Linearly dependent columns are essentially replaced by random directions, and the corresponding diagonal entry in R is set to (nearly) zero.

See Also

BVOrthogonalizeColumn(), BVOrthogonalizeVec(), BVSetActiveColumns(), BVSetOrthogonalization(), BVOrthogBlockType

Location: src/sys/classes/bv/interface/bvorthog.c
Index of all BV routines
Table of Contents for all manual pages
Index of all manual pages