173f4d377SMatthew Knepley /*$Id: matregis.c,v 1.10 2001/06/21 21:16:17 bsmith Exp $*/ 28a95e4e9SBarry Smith 3f7cf7585SBarry Smith #include "petscmat.h" /*I "petscmat.h" I*/ 48a95e4e9SBarry Smith 58a95e4e9SBarry Smith EXTERN_C_BEGIN 6f7cf7585SBarry Smith EXTERN int MatCreate_MAIJ(Mat); 7186905e3SBarry Smith EXTERN int MatCreate_IS(Mat); 8273d9f13SBarry Smith EXTERN int MatCreate_MPIRowbs(Mat); 9273d9f13SBarry Smith EXTERN int MatCreate_SeqAIJ(Mat); 10273d9f13SBarry Smith EXTERN int MatCreate_MPIAIJ(Mat); 11273d9f13SBarry Smith EXTERN int MatCreate_SeqBAIJ(Mat); 12273d9f13SBarry Smith EXTERN int MatCreate_MPIBAIJ(Mat); 13273d9f13SBarry Smith EXTERN int MatCreate_SeqSBAIJ(Mat); 14273d9f13SBarry Smith EXTERN int MatCreate_MPISBAIJ(Mat); 15273d9f13SBarry Smith EXTERN int MatCreate_SeqBDiag(Mat); 16273d9f13SBarry Smith EXTERN int MatCreate_MPIBDiag(Mat); 17273d9f13SBarry Smith EXTERN int MatCreate_SeqDense(Mat); 18273d9f13SBarry Smith EXTERN int MatCreate_MPIDense(Mat); 19273d9f13SBarry Smith EXTERN int MatCreate_MPIAdj(Mat); 20273d9f13SBarry Smith EXTERN int MatCreate_Shell(Mat); 21064f8208SBarry Smith #if defined(__cplusplus) 226d88219bSBarry Smith EXTERN int MatCreate_ESI(Mat); 236d88219bSBarry Smith EXTERN int MatCreate_PetscESI(Mat); 246d88219bSBarry Smith #endif 25b3a1e11cSKris Buschelman #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 26b3a1e11cSKris Buschelman EXTERN int MatCreate_SeqAIJ_Spooles(Mat); 279abb65ffSKris Buschelman EXTERN int MatCreate_SeqSBAIJ_Spooles(Mat); 28d10c748bSKris Buschelman EXTERN int MatCreate_MPIAIJ_Spooles(Mat); 2922191285SKris Buschelman EXTERN int MatCreate_MPISBAIJ_Spooles(Mat); 30b3a1e11cSKris Buschelman #endif 3114b396bbSKris Buschelman #if defined(PETSC_HAVE_SUPERLU) && !defined(PETSC_USE_SINGLE) 32e740cb95SKris Buschelman EXTERN int MatCreate_SeqAIJ_SuperLU(Mat); 3314b396bbSKris Buschelman #endif 34*618c6428SHong Zhang #if defined(PETSC_HAVE_SUPERLU_DIST) && !defined(PETSC_USE_SINGLE) 35448de63eSKris Buschelman EXTERN int MatCreate_MPIAIJ_SuperLU_DIST(Mat); 36448de63eSKris Buschelman #endif 371677d0b8SKris Buschelman #if defined(PETSC_HAVE_UMFPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 381677d0b8SKris Buschelman EXTERN int MatCreate_SeqAIJ_UMFPACK(Mat); 391677d0b8SKris Buschelman #endif 40e8aa55a4SKris Buschelman #if defined(PETSC_HAVE_ESSL) && !defined(__cplusplus) 41e8aa55a4SKris Buschelman EXTERN int MatCreate_SeqAIJ_Essl(Mat); 42e8aa55a4SKris Buschelman #endif 434eb8e494SKris Buschelman #if defined(PETSC_HAVE_LUSOL) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 444eb8e494SKris Buschelman EXTERN int MatCreate_SeqAIJ_LUSOL(Mat); 454eb8e494SKris Buschelman #endif 46397b6df1SKris Buschelman #if defined(PETSC_HAVE_MUMPS) && !defined(PETSC_USE_SINGLE) 47397b6df1SKris Buschelman EXTERN int MatCreate_AIJ_MUMPS(Mat); 48397b6df1SKris Buschelman EXTERN int MatCreate_SBAIJ_MUMPS(Mat); 49397b6df1SKris Buschelman #endif 508da957c5SKris Buschelman #if defined(PETSC_HAVE_DSCPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 518da957c5SKris Buschelman EXTERN int MatCreate_MPIBAIJ_DSCPACK(Mat); 528da957c5SKris Buschelman #endif 538a95e4e9SBarry Smith EXTERN_C_END 548a95e4e9SBarry Smith 558a95e4e9SBarry Smith /* 56f7cf7585SBarry Smith This is used by MatSetType() to make sure that at least one 57f7cf7585SBarry Smith MatRegisterAll() is called. In general, if there is more than one 58f7cf7585SBarry Smith DLL, then MatRegisterAll() may be called several times. 598a95e4e9SBarry Smith */ 60f7cf7585SBarry Smith EXTERN PetscTruth MatRegisterAllCalled; 618a95e4e9SBarry Smith 624a2ae208SSatish Balay #undef __FUNCT__ 634a2ae208SSatish Balay #define __FUNCT__ "MatRegisterAll" 648a95e4e9SBarry Smith /*@C 65f7cf7585SBarry Smith MatRegisterAll - Registers all of the matrix types in PETSc 668a95e4e9SBarry Smith 678a95e4e9SBarry Smith Not Collective 688a95e4e9SBarry Smith 698a95e4e9SBarry Smith Level: advanced 708a95e4e9SBarry Smith 718a95e4e9SBarry Smith .keywords: KSP, register, all 728a95e4e9SBarry Smith 73f7cf7585SBarry Smith .seealso: MatRegisterDestroy() 748a95e4e9SBarry Smith @*/ 75f7cf7585SBarry Smith int MatRegisterAll(char *path) 768a95e4e9SBarry Smith { 778a95e4e9SBarry Smith int ierr; 788a95e4e9SBarry Smith 798a95e4e9SBarry Smith PetscFunctionBegin; 80f7cf7585SBarry Smith MatRegisterAllCalled = PETSC_TRUE; 818a95e4e9SBarry Smith 82f7cf7585SBarry Smith ierr = MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 83b9b97703SBarry Smith ierr = MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ", MatCreate_MAIJ);CHKERRQ(ierr); 84273d9f13SBarry Smith 85186905e3SBarry Smith ierr = MatRegisterDynamic(MATIS, path,"MatCreate_IS", MatCreate_IS);CHKERRQ(ierr); 86273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSHELL, path,"MatCreate_Shell", MatCreate_Shell);CHKERRQ(ierr); 875d10bc3aSBarry Smith #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX) 88273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);CHKERRQ(ierr); 89273d9f13SBarry Smith #endif 90273d9f13SBarry Smith 91273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIAIJ, path,"MatCreate_MPIAIJ", MatCreate_MPIAIJ);CHKERRQ(ierr); 92273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQAIJ, path,"MatCreate_SeqAIJ", MatCreate_SeqAIJ);CHKERRQ(ierr); 93273d9f13SBarry Smith 94273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBAIJ, path,"MatCreate_MPIBAIJ", MatCreate_MPIBAIJ);CHKERRQ(ierr); 95273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBAIJ, path,"MatCreate_SeqBAIJ", MatCreate_SeqBAIJ);CHKERRQ(ierr); 96273d9f13SBarry Smith 97273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPISBAIJ, path,"MatCreate_MPISBAIJ", MatCreate_MPISBAIJ);CHKERRQ(ierr); 98273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQSBAIJ, path,"MatCreate_SeqSBAIJ", MatCreate_SeqSBAIJ);CHKERRQ(ierr); 99273d9f13SBarry Smith 100273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIBDIAG, path,"MatCreate_MPIBDiag", MatCreate_MPIBDiag);CHKERRQ(ierr); 101273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQBDIAG, path,"MatCreate_SeqBDiag", MatCreate_SeqBDiag);CHKERRQ(ierr); 102273d9f13SBarry Smith 103273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIDENSE, path,"MatCreate_MPIDense", MatCreate_MPIDense);CHKERRQ(ierr); 104273d9f13SBarry Smith ierr = MatRegisterDynamic(MATSEQDENSE, path,"MatCreate_SeqDense", MatCreate_SeqDense);CHKERRQ(ierr); 105273d9f13SBarry Smith 106273d9f13SBarry Smith ierr = MatRegisterDynamic(MATMPIADJ, path,"MatCreate_MPIAdj", MatCreate_MPIAdj);CHKERRQ(ierr); 107c7cd70f7SSatish Balay #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE) 1086d88219bSBarry Smith ierr = MatRegisterDynamic(MATESI, path,"MatCreate_ESI", MatCreate_ESI);CHKERRQ(ierr); 1096d88219bSBarry Smith ierr = MatRegisterDynamic(MATPETSCESI, path,"MatCreate_PetscESI", MatCreate_PetscESI);CHKERRQ(ierr); 1106d88219bSBarry Smith #endif 111b3a1e11cSKris Buschelman #if defined(PETSC_HAVE_SPOOLES) && !defined(PETSC_USE_SINGLE) 112b3a1e11cSKris Buschelman ierr = MatRegisterDynamic(MATSEQAIJSPOOLES, path,"MatCreate_SeqAIJ_Spooles", MatCreate_SeqAIJ_Spooles);CHKERRQ(ierr); 1139abb65ffSKris Buschelman ierr = MatRegisterDynamic(MATSEQSBAIJSPOOLES,path,"MatCreate_SeqSBAIJ_Spooles",MatCreate_SeqSBAIJ_Spooles);CHKERRQ(ierr); 114d10c748bSKris Buschelman ierr = MatRegisterDynamic(MATMPIAIJSPOOLES, path,"MatCreate_MPIAIJ_Spooles", MatCreate_MPIAIJ_Spooles);CHKERRQ(ierr); 11522191285SKris Buschelman ierr = MatRegisterDynamic(MATMPISBAIJSPOOLES,path,"MatCreate_MPISBAIJ_Spooles",MatCreate_MPISBAIJ_Spooles);CHKERRQ(ierr); 116b3a1e11cSKris Buschelman #endif 11714b396bbSKris Buschelman #if defined(PETSC_HAVE_SUPERLU) && !defined(PETSC_USE_SINGLE) 11814b396bbSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU,path,"MatCreate_SeqAIJ_SuperLU",MatCreate_SeqAIJ_SuperLU);CHKERRQ(ierr); 11914b396bbSKris Buschelman #endif 120*618c6428SHong Zhang #if defined(PETSC_HAVE_SUPERLU_DIST) && !defined(PETSC_USE_SINGLE) 121d72ddd2aSKris Buschelman ierr = MatRegisterDynamic(MATSUPERLU_DIST,path,"MatCreate_MPIAIJ_SuperLU_DIST",MatCreate_MPIAIJ_SuperLU_DIST);CHKERRQ(ierr); 122448de63eSKris Buschelman #endif 1231677d0b8SKris Buschelman #if defined(PETSC_HAVE_UMFPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 1241677d0b8SKris Buschelman ierr = MatRegisterDynamic(MATUMFPACK,path,"MatCreate_SeqAIJ_UMFPACK",MatCreate_SeqAIJ_UMFPACK);CHKERRQ(ierr); 1251677d0b8SKris Buschelman #endif 126e8aa55a4SKris Buschelman #if defined(PETSC_HAVE_ESSL) && !defined(__cplusplus) 127e8aa55a4SKris Buschelman ierr = MatRegisterDynamic(MATESSL,path,"MatCreate_SeqAIJ_Essl",MatCreate_SeqAIJ_Essl);CHKERRQ(ierr); 128e8aa55a4SKris Buschelman #endif 1294eb8e494SKris Buschelman #if defined(PETSC_HAVE_LUSOL) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 1304eb8e494SKris Buschelman ierr = MatRegisterDynamic(MATLUSOL,path,"MatCreate_SeqAIJ_LUSOL",MatCreate_SeqAIJ_LUSOL);CHKERRQ(ierr); 1314eb8e494SKris Buschelman #endif 132397b6df1SKris Buschelman #if defined(PETSC_HAVE_MUMPS) && !defined(PETSC_USE_SINGLE) 133397b6df1SKris Buschelman ierr = MatRegisterDynamic(MATAIJMUMPS, path,"MatCreate_AIJ_MUMPS",MatCreate_AIJ_MUMPS);CHKERRQ(ierr); 134397b6df1SKris Buschelman ierr = MatRegisterDynamic(MATSBAIJMUMPS,path,"MatCreate_SBAIJ_MUMPS",MatCreate_SBAIJ_MUMPS);CHKERRQ(ierr); 135397b6df1SKris Buschelman #endif 1368da957c5SKris Buschelman #if defined(PETSC_HAVE_DSCPACK) && !defined(PETSC_USE_SINGLE) && !defined(PETSC_USE_COMPLEX) 1378da957c5SKris Buschelman ierr = MatRegisterDynamic(MATDSCPACK,path,"MatCreate_MPIBAIJ_DSCPACK",MatCreate_MPIBAIJ_DSCPACK);CHKERRQ(ierr); 1388da957c5SKris Buschelman #endif 1398a95e4e9SBarry Smith PetscFunctionReturn(0); 1408a95e4e9SBarry Smith } 141f7cf7585SBarry Smith 1423a7fca6bSBarry Smith 143