slepc-3.21.1 2024-04-26
Report Typos and Errors

BVInsertConstraints

Insert a set of vectors as constraints.

Synopsis

#include "slepcbv.h" 
PetscErrorCode BVInsertConstraints(BV V,PetscInt *nc,Vec *C)
Collective

Input Parameters

V  - basis vectors
C  - set of vectors to be inserted as constraints

Input/Output Parameter

nc  - number of input vectors, on output the number of linearly independent vectors

Notes

The constraints are relevant only during orthogonalization. Constraint vectors span a subspace that is deflated in every orthogonalization operation, so they are intended for removing those directions from the orthogonal basis computed in regular BV columns.

Constraints are not stored in regular BV columns, but in a special part of the storage. They can be accessed with negative indices in BVGetColumn().

This operation is DESTRUCTIVE, meaning that all data contained in the columns of V is lost. This is typically invoked just after creating the BV. Once a set of constraints has been set, it is not allowed to call this function again.

The vectors are copied one by one and then orthogonalized against the previous ones. If any of them is linearly dependent then it is discarded and the value of nc is decreased. The behaviour is similar to BVInsertVecs().

See Also

BVInsertVecs(), BVOrthogonalizeColumn(), BVGetColumn(), BVGetNumConstraints()

Level

advanced

Location

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

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