VecDuplicate#

Creates a new vector of the same type as an existing vector.

Synopsis#

#include "petscvec.h"   
PetscErrorCode VecDuplicate(Vec v, Vec *newv)

Collective

Input Parameter#

  • v - a vector to mimic

Output Parameter#

  • newv - location to put new vector

Notes#

VecDuplicate() DOES NOT COPY the vector entries, but rather allocates storage for the new vector. Use VecCopy() to copy a vector.

PETSc Vec always have all zero entries when created with VecDuplicate() until routines such as VecSet() or VecSetValues() are used to change the values. There is no reason to call VecZeroEntries() after creation.

Use VecDestroy() to free the space. Use VecDuplicateVecs() to get several vectors.

See Also#

Vectors and Parallel Data, Vec, VecDestroy(), VecDuplicateVecs(), VecCreate(), VecCopy()

Level#

beginner

Location#

src/vec/vec/interface/vector.c

Examples#

src/snes/tutorials/ex12.c
src/snes/tutorials/ex14.c
src/mat/tutorials/ex9.c
src/snes/tutorials/ex9.c
src/snes/tutorials/ex21.c
src/snes/tutorials/ex70.c
src/snes/tutorials/ex99.c
src/snes/tutorials/ex28.c
src/snes/tutorials/ex15.c
src/snes/tutorials/ex1.c

Implementations#

VecDuplicate_MPIKokkos() in src/vec/vec/impls/mpi/kokkos/mpikok.kokkos.cxx
VecDuplicate_MPIViennaCL() in src/vec/vec/impls/mpi/mpiviennacl/mpiviennacl.cxx
VecDuplicate_MPI() in src/vec/vec/impls/mpi/pbvec.c
VecDuplicate_Nest() in src/vec/vec/impls/nest/vecnest.c
VecDuplicate_Seq() in src/vec/vec/impls/seq/bvec2.c
VecDuplicate_SeqKokkos() in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
VecDuplicate_SeqViennaCL() in src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx
VecDuplicate_Shared() in src/vec/vec/impls/shared/shvec.c


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