:orphan:
# 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 Note
`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
[](ch_vectors), `Vec`, `VecDuplicate()`
## Level
beginner
## Location
src/vec/vec/interface/vector.c
## Examples
src/dm/impls/stag/tutorials/ex1.c
src/dm/impls/stag/tutorials/ex2.c
src/dm/impls/stag/tutorials/ex3.c
src/dm/impls/swarm/tutorials/ex1.c
src/dm/impls/swarm/tutorials/ex1f90.F90
src/dm/tutorials/ex15.c
src/ksp/ksp/tutorials/ex14f.F90
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex28.c
src/ksp/ksp/tutorials/ex9.c
src/mat/tutorials/ex9.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
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/interface/vector.c)
[Index of all Vec routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)