slepc-3.17.2 2022-08-09
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 on V

### 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()

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