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_MPI_WIN_CREATE_FEATURE) 9 PETSC_EXTERN PetscErrorCode VecCreate_Node(Vec); 10 #endif 11 #if defined(PETSC_HAVE_VIENNACL) 12 PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec); 13 PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec); 14 PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec); 15 #endif 16 #if 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 /*@C 23 VecRegisterAll - Registers all of the vector components in the Vec package. 24 25 Not Collective 26 27 Level: advanced 28 29 .keywords: Vec, register, all 30 .seealso: VecRegister(), VecRegisterDestroy(), VecRegister() 31 @*/ 32 PetscErrorCode VecRegisterAll(void) 33 { 34 PetscErrorCode ierr; 35 36 PetscFunctionBegin; 37 if (VecRegisterAllCalled) PetscFunctionReturn(0); 38 VecRegisterAllCalled = PETSC_TRUE; 39 40 ierr = VecRegister(VECSEQ, VecCreate_Seq);CHKERRQ(ierr); 41 ierr = VecRegister(VECMPI, VecCreate_MPI);CHKERRQ(ierr); 42 ierr = VecRegister(VECSTANDARD, VecCreate_Standard);CHKERRQ(ierr); 43 ierr = VecRegister(VECSHARED, VecCreate_Shared);CHKERRQ(ierr); 44 #if defined PETSC_HAVE_MPI_WIN_CREATE_FEATURE 45 ierr = VecRegister(VECNODE, VecCreate_Node);CHKERRQ(ierr); 46 #endif 47 #if defined PETSC_HAVE_VIENNACL 48 ierr = VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL);CHKERRQ(ierr); 49 ierr = VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL);CHKERRQ(ierr); 50 ierr = VecRegister(VECVIENNACL, VecCreate_ViennaCL);CHKERRQ(ierr); 51 #endif 52 #if defined(PETSC_HAVE_VECCUDA) 53 ierr = VecRegister(VECSEQCUDA, VecCreate_SeqCUDA);CHKERRQ(ierr); 54 ierr = VecRegister(VECMPICUDA, VecCreate_MPICUDA);CHKERRQ(ierr); 55 ierr = VecRegister(VECCUDA, VecCreate_CUDA);CHKERRQ(ierr); 56 #endif 57 PetscFunctionReturn(0); 58 } 59