Skip to main content
`Ctrl`+`K`

# KSPCreateVecs

Gets a number of work vectors suitably sized for the operator in the `KSP`

## Synopsis

    #include "petscksp.h"
    PetscErrorCode KSPCreateVecs(KSP ksp, PetscInt rightn, Vec *right[], PetscInt leftn, Vec *left[])

Collective

## Input Parameters

- ksp - iterative context

- rightn - number of right work vectors to allocate

- leftn - number of left work vectors to allocate

## Output Parameters

- right - the array of vectors created

- left - the array of left vectors

## Notes

The right vector has as many elements as the matrix has columns. The left vector has as many elements as the matrix has rows, see `MatSetSizes()` for details on the layout of the vectors.

The vectors are new vectors that are not owned by the `KSP`, they should be destroyed with calls to `VecDestroyVecs()` when no longer needed.

## Developer Note

First tries to duplicate the rhs and solution vectors of the `KSP`, if they do not exist tries to get them from the matrix with `MatCreateVecs()`, if that does not exist tries to get them from the `DM` (if it is provided) with `DMCreateGlobalVectors()`.

## See Also

KSP: Linear System Solvers, `MatCreateVecs()`, `VecDestroyVecs()`, `KSPSetWorkVecs()`

## Level

advanced

## Location

src/ksp/ksp/interface/iterativ.c

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