Actual source code: vecs.c

  1: #include <petscvec.h>

  3: PetscErrorCode VecsDestroy(Vecs x)
  4: {
  5:   PetscFunctionBegin;
  6:   PetscCall(VecDestroy(&(x)->v));
  7:   PetscCall(PetscFree(x));
  8:   PetscFunctionReturn(PETSC_SUCCESS);
  9: }

 11: PetscErrorCode VecsCreateSeq(MPI_Comm comm, PetscInt p, PetscInt m, Vecs *x)
 12: {
 13:   PetscFunctionBegin;
 14:   PetscCall(PetscNew(x));
 15:   PetscCall(VecCreateSeq(comm, p * m, &(*x)->v));
 16:   (*x)->n = m;
 17:   PetscFunctionReturn(PETSC_SUCCESS);
 18: }

 20: PetscErrorCode VecsCreateSeqWithArray(MPI_Comm comm, PetscInt p, PetscInt m, PetscScalar *a, Vecs *x)
 21: {
 22:   PetscFunctionBegin;
 23:   PetscCall(PetscNew(x));
 24:   PetscCall(VecCreateSeqWithArray(comm, 1, p * m, a, &(*x)->v));
 25:   (*x)->n = m;
 26:   PetscFunctionReturn(PETSC_SUCCESS);
 27: }

 29: PetscErrorCode VecsDuplicate(Vecs x, Vecs *y)
 30: {
 31:   PetscFunctionBegin;
 32:   PetscCall(PetscNew(y));
 33:   PetscCall(VecDuplicate(x->v, &(*y)->v));
 34:   (*y)->n = x->n;
 35:   PetscFunctionReturn(PETSC_SUCCESS);
 36: }