1 /*$Id: matregis.c,v 1.10 2001/06/21 21:16:17 bsmith Exp $*/ 2 3 #include "petscmat.h" /*I "petscmat.h" I*/ 4 5 EXTERN_C_BEGIN 6 EXTERN int MatCreate_MAIJ(Mat); 7 EXTERN int MatCreate_IS(Mat); 8 EXTERN int MatCreate_MPIRowbs(Mat); 9 EXTERN int MatCreate_SeqAIJ(Mat); 10 EXTERN int MatCreate_MPIAIJ(Mat); 11 EXTERN int MatCreate_SeqBAIJ(Mat); 12 EXTERN int MatCreate_MPIBAIJ(Mat); 13 EXTERN int MatCreate_SeqSBAIJ(Mat); 14 EXTERN int MatCreate_MPISBAIJ(Mat); 15 EXTERN int MatCreate_SeqBDiag(Mat); 16 EXTERN int MatCreate_MPIBDiag(Mat); 17 EXTERN int MatCreate_SeqDense(Mat); 18 EXTERN int MatCreate_MPIDense(Mat); 19 EXTERN int MatCreate_MPIAdj(Mat); 20 EXTERN int MatCreate_Shell(Mat); 21 #if defined(__cplusplus) 22 EXTERN int MatCreate_ESI(Mat); 23 EXTERN int MatCreate_PetscESI(Mat); 24 #endif 25 #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 26 EXTERN int MatCreate_SeqAIJ_Spooles(Mat); 27 EXTERN int MatCreate_SeqSBAIJ_Spooles(Mat); 28 EXTERN int MatCreate_MPIAIJ_Spooles(Mat); 29 #endif 30 EXTERN_C_END 31 32 /* 33 This is used by MatSetType() to make sure that at least one 34 MatRegisterAll() is called. In general, if there is more than one 35 DLL, then MatRegisterAll() may be called several times. 36 */ 37 EXTERN PetscTruth MatRegisterAllCalled; 38 39 #undef __FUNCT__ 40 #define __FUNCT__ "MatRegisterAll" 41 /*@C 42 MatRegisterAll - Registers all of the matrix types in PETSc 43 44 Not Collective 45 46 Level: advanced 47 48 .keywords: KSP, register, all 49 50 .seealso: MatRegisterDestroy() 51 @*/ 52 int MatRegisterAll(char *path) 53 { 54 int ierr; 55 56 PetscFunctionBegin; 57 MatRegisterAllCalled = PETSC_TRUE; 58 59 ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 60 ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 61 62 ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 63 ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 64 #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX) 65 ierr = MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 66 #endif 67 68 ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 69 ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 70 71 ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 72 ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 73 74 ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 75 ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 76 77 ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 78 ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 79 80 ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 81 ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 82 83 ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 84 #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE) 85 ierr = MatRegisterDynamic(MATESI, path,"MatCreate_ESI", MatCreate_ESI);CHKERRQ(ierr); 86 ierr = MatRegisterDynamic(MATPETSCESI, path,"MatCreate_PetscESI", MatCreate_PetscESI);CHKERRQ(ierr); 87 #endif 88 #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 89 ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJ_Spooles", MatCreate_SeqAIJ_Spooles);CHKERRQ(ierr); 90 ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJ_Spooles",MatCreate_SeqSBAIJ_Spooles);CHKERRQ(ierr); 91 ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJ_Spooles", MatCreate_MPIAIJ_Spooles);CHKERRQ(ierr); 92 #endif 93 PetscFunctionReturn(0); 94 } 95 96 97