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