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 behavior is similar to BVInsertVecs().
See Also#
BV: Basis Vectors, 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