Skip to main content
`Ctrl`+`K`

# VecCopy

Copies a vector `y = x`

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecCopy(Vec x, Vec y)

Logically Collective

## Input Parameter

- x - the vector

## Output Parameter

- y - the copy

## Note

For default parallel PETSc vectors, both `x` and `y` must be distributed in the same manner; local copies are done.

## Developer Notes

`PetscCheckSameTypeAndComm`(x,1,y,2) is not used on these vectors because we allow one of the vectors to be sequential and one to be parallel so long as both have the same local sizes. This is used in some internal functions in PETSc.

## See Also

Vectors and Parallel Data, `Vec`, `VecDuplicate()`

## Level

beginner

## Location

src/vec/vec/interface/vector.c

## Examples

src/dm/impls/stag/tutorials/ex1.c
src/ksp/ksp/tutorials/ex9.c
src/dm/impls/stag/tutorials/ex3.c
src/ksp/ksp/tutorials/ex14f.F90
src/ksp/ksp/tutorials/ex27.c
src/dm/tutorials/ex15.c
src/mat/tutorials/ex9.c
src/dm/impls/stag/tutorials/ex2.c
src/dm/impls/swarm/tutorials/ex1f90.F90
src/ksp/ksp/tutorials/ex28.c

## Implementations

VecCopy_Nest() in src/vec/vec/impls/nest/vecnest.c
VecCopy_Seq() in src/vec/vec/impls/seq/bvec2.c
VecCopy_SeqKokkos() in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
VecCopy_SeqViennaCL() in src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx

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