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

  • 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