xref: /petsc/src/vec/vec/interface/vecregall.c (revision 1566a47f5f7ddc4d41547989035e2da0a3965616)
1 
2 #include <petscvec.h>
3 #include <petsc/private/vecimpl.h>
4 PETSC_EXTERN PetscErrorCode VecCreate_Seq(Vec);
5 PETSC_EXTERN PetscErrorCode VecCreate_MPI(Vec);
6 PETSC_EXTERN PetscErrorCode VecCreate_Standard(Vec);
7 PETSC_EXTERN PetscErrorCode VecCreate_Shared(Vec);
8 #if defined(PETSC_HAVE_CUSP)
9 PETSC_EXTERN PetscErrorCode VecCreate_SeqCUSP(Vec);
10 PETSC_EXTERN PetscErrorCode VecCreate_MPICUSP(Vec);
11 PETSC_EXTERN PetscErrorCode VecCreate_CUSP(Vec);
12 #elif defined(PETSC_HAVE_VIENNACL)
13 PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec);
14 PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec);
15 PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec);
16 #elif defined(PETSC_HAVE_VECCUDA)
17 PETSC_EXTERN PetscErrorCode VecCreate_SeqCUDA(Vec);
18 PETSC_EXTERN PetscErrorCode VecCreate_MPICUDA(Vec);
19 PETSC_EXTERN PetscErrorCode VecCreate_CUDA(Vec);
20 #endif
21 
22 #undef __FUNCT__
23 #define __FUNCT__ "VecRegisterAll"
24 /*@C
25   VecRegisterAll - Registers all of the vector components in the Vec package.
26 
27   Not Collective
28 
29   Level: advanced
30 
31 .keywords: Vec, register, all
32 .seealso:  VecRegister(), VecRegisterDestroy(), VecRegister()
33 @*/
34 PetscErrorCode  VecRegisterAll(void)
35 {
36   PetscErrorCode ierr;
37 
38   PetscFunctionBegin;
39   if (VecRegisterAllCalled) PetscFunctionReturn(0);
40   VecRegisterAllCalled = PETSC_TRUE;
41 
42   ierr = VecRegister(VECSEQ,        VecCreate_Seq);CHKERRQ(ierr);
43   ierr = VecRegister(VECMPI,        VecCreate_MPI);CHKERRQ(ierr);
44   ierr = VecRegister(VECSTANDARD,   VecCreate_Standard);CHKERRQ(ierr);
45   ierr = VecRegister(VECSHARED,     VecCreate_Shared);CHKERRQ(ierr);
46 #if defined PETSC_HAVE_CUSP
47   ierr = VecRegister(VECSEQCUSP,    VecCreate_SeqCUSP);CHKERRQ(ierr);
48   ierr = VecRegister(VECMPICUSP,    VecCreate_MPICUSP);CHKERRQ(ierr);
49   ierr = VecRegister(VECCUSP,       VecCreate_CUSP);CHKERRQ(ierr);
50 #elif defined PETSC_HAVE_VIENNACL
51   ierr = VecRegister(VECSEQVIENNACL,    VecCreate_SeqViennaCL);CHKERRQ(ierr);
52   ierr = VecRegister(VECMPIVIENNACL,    VecCreate_MPIViennaCL);CHKERRQ(ierr);
53   ierr = VecRegister(VECVIENNACL,       VecCreate_ViennaCL);CHKERRQ(ierr);
54 #elif defined(PETSC_HAVE_VECCUDA)
55   ierr = VecRegister(VECSEQCUDA,    VecCreate_SeqCUDA);CHKERRQ(ierr);
56   ierr = VecRegister(VECMPICUDA,    VecCreate_MPICUDA);CHKERRQ(ierr);
57   ierr = VecRegister(VECCUDA,       VecCreate_CUDA);CHKERRQ(ierr);
58 #endif
59   PetscFunctionReturn(0);
60 }
61 
62