Skip to main content
`Ctrl`+`K`

# BVGetSplit

Splits the `BV` object into two `BV` objects that share the internal data, one of them containing the leading columns and the other one containing the remaining columns.

## Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVGetSplit(BV bv,BV *L,BV *R)

Collective

## Input Parameter

- bv - the basis vectors context

## Output Parameters

- L - left `BV` containing leading columns (can be `NULL`)

- R - right `BV` containing remaining columns (can be `NULL`)

## Notes

The columns are split in two sets. The leading columns (including the constraints) are assigned to the left `BV` and the remaining columns are assigned to the right `BV`. The number of leading columns, as specified with `BVSetActiveColumns()`, must be between `1` and `m-1` (to guarantee that both `L` and `R` have at least one column).

The returned `BV`s must be seen as references (not copies) of the input `BV`, that is, modifying them will change the entries of `bv` as well. The returned `BV`s must not be destroyed. `BVRestoreSplit()` must be called when they are no longer needed.

Pass `NULL` for any of the output `BV`s that is not needed.

## See Also

BV: Basis Vectors, `BVRestoreSplit()`, `BVSetActiveColumns()`, `BVSetNumConstraints()`, `BVGetSplitRows()`

## Level

advanced

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