Actual source code: matregis.c

  1: /*$Id: matregis.c,v 1.10 2001/06/21 21:16:17 bsmith Exp $*/

 3:  #include petscmat.h

  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: EXTERN_C_END
 26: 
 27: /*
 28:     This is used by MatSetType() to make sure that at least one 
 29:     MatRegisterAll() is called. In general, if there is more than one
 30:     DLL, then MatRegisterAll() may be called several times.
 31: */
 32: EXTERN PetscTruth MatRegisterAllCalled;

 34: #undef __FUNCT__  
 36: /*@C
 37:   MatRegisterAll - Registers all of the matrix types in PETSc

 39:   Not Collective

 41:   Level: advanced

 43: .keywords: KSP, register, all

 45: .seealso:  MatRegisterDestroy()
 46: @*/
 47: int MatRegisterAll(char *path)
 48: {

 52:   MatRegisterAllCalled = PETSC_TRUE;

 54:   MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 55:   MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);

 57:   MatRegisterDynamic(MATIS,      path,"MatCreate_IS",      MatCreate_IS);
 58:   MatRegisterDynamic(MATSHELL,   path,"MatCreate_Shell",   MatCreate_Shell);
 59: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(PETSC_USE_COMPLEX)
 60:   MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
 61: #endif

 63:   MatRegisterDynamic(MATMPIAIJ,  path,"MatCreate_MPIAIJ",  MatCreate_MPIAIJ);
 64:   MatRegisterDynamic(MATSEQAIJ,  path,"MatCreate_SeqAIJ",  MatCreate_SeqAIJ);

 66:   MatRegisterDynamic(MATMPIBAIJ,  path,"MatCreate_MPIBAIJ",  MatCreate_MPIBAIJ);
 67:   MatRegisterDynamic(MATSEQBAIJ,  path,"MatCreate_SeqBAIJ",  MatCreate_SeqBAIJ);

 69:   MatRegisterDynamic(MATMPISBAIJ,  path,"MatCreate_MPISBAIJ",  MatCreate_MPISBAIJ);
 70:   MatRegisterDynamic(MATSEQSBAIJ,  path,"MatCreate_SeqSBAIJ",  MatCreate_SeqSBAIJ);

 72:   MatRegisterDynamic(MATMPIBDIAG,  path,"MatCreate_MPIBDiag",  MatCreate_MPIBDiag);
 73:   MatRegisterDynamic(MATSEQBDIAG,  path,"MatCreate_SeqBDiag",  MatCreate_SeqBDiag);

 75:   MatRegisterDynamic(MATMPIDENSE,  path,"MatCreate_MPIDense",  MatCreate_MPIDense);
 76:   MatRegisterDynamic(MATSEQDENSE,  path,"MatCreate_SeqDense",  MatCreate_SeqDense);

 78:   MatRegisterDynamic(MATMPIADJ,    path,"MatCreate_MPIAdj",    MatCreate_MPIAdj);
 79: #if defined(__cplusplus) && !defined(PETSC_USE_COMPLEX) && !defined(PETSC_USE_SINGLE) && defined(PETSC_HAVE_CXX_NAMESPACE)
 80:   MatRegisterDynamic(MATESI,       path,"MatCreate_ESI",    MatCreate_ESI);
 81:   MatRegisterDynamic(MATPETSCESI,  path,"MatCreate_PetscESI",    MatCreate_PetscESI);
 82: #endif
 83:   return(0);
 84: }