Skip to main content
`Ctrl`+`K`

# BVGetBufferVec

Obtain the buffer vector associated with the `BV` object.

## Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVGetBufferVec(BV bv,Vec *buffer)

Collective

## Input Parameter

- bv - the basis vectors context

## Output Parameter

- buffer - vector

## Notes

The vector is created if not available previously. It is a sequential vector of length \((n_c+m) m\), where \(m\) is the number of columns of `bv` and \(n_c\) is the number of constraints.

## Developer Notes

The buffer vector is viewed as a column-major matrix with leading dimension equal to \(n_c+m\), and \(m\) columns at most. In the most common usage, it has the structure

\[\begin{split} \left[\begin{array}{c|c} s & \begin{array}{c} C \\\hline H \end{array} \end{array}\right] \end{split}\]
where \(H\) is an upper Hessenberg matrix of order \(m (m-1)\), \(C\) contains coefficients related to orthogonalization against constraints (first \(n_c\) rows), and \(s\) is the first column that contains scratch values computed during Gram-Schmidt orthogonalization. In particular, `BVDotColumn()` and `BVMultColumn()` use \(s\) to store the coefficients.

## See Also

BV: Basis Vectors, `BVSetBufferVec()`, `BVSetSizes()`, `BVGetNumConstraints()`, `BVDotColumn()`, `BVMultColumn()`

## Level

developer

## Location

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

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