MatCreateVecs#

Get vector(s) compatible with the matrix, i.e. with the same parallel layout, PetscLayout for rows and columns

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatCreateVecs(Mat mat, Vec *right, Vec *left)

Collective

Input Parameter#

  • mat - the matrix

Output Parameters#

  • right - (optional) vector that the matrix can be multiplied against

  • left - (optional) vector that the matrix vector product can be stored in

Notes#

The blocksize of the returned vectors is determined by the row and column block sizes set with MatSetBlockSizes() or the single blocksize (same for both) set by MatSetBlockSize().

These are new vectors which are not owned by the mat, they should be destroyed in VecDestroy() when no longer needed

See Also#

Mat, Vec, VecCreate(), VecDestroy(), DMCreateGlobalVector()

Level#

advanced

Location#

src/mat/interface/matrix.c

Examples#

src/mat/tutorials/ex3.c.html
src/mat/tutorials/ex5cu.cu.html
src/mat/tutorials/ex5k.kokkos.cxx.html
src/mat/tutorials/ex9.c.html
src/ksp/ksp/tutorials/ex100.c.html
src/ksp/ksp/tutorials/ex100f.F90.html
src/ksp/ksp/tutorials/ex10.c.html
src/ksp/ksp/tutorials/ex15f.F90.html
src/ksp/ksp/tutorials/ex21.c.html
src/ksp/ksp/tutorials/ex27.c.html
src/ksp/ksp/tutorials/ex42.c.html

Implementations#

MatCreateVecs_Nest in src/mat/impls/nest/matnest.c
MatCreateVecs_HT in src/mat/impls/transpose/htransm.c
MatCreateVecs_Transpose in src/mat/impls/transpose/transm.c


Edit on GitLab

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