Actual source code: matregis.c

  1: #define PETSCMAT_DLL

 3:  #include petscmat.h

  6: EXTERN PetscErrorCode  MatCreate_MFFD(Mat);
  7: EXTERN PetscErrorCode  MatCreate_MAIJ(Mat);
  8: EXTERN PetscErrorCode  MatCreate_IS(Mat);
  9: EXTERN PetscErrorCode  MatCreate_MPIRowbs(Mat);

 11: EXTERN PetscErrorCode  MatCreate_AIJ(Mat);
 12: EXTERN PetscErrorCode  MatCreate_SeqAIJ(Mat);
 13: EXTERN PetscErrorCode  MatCreate_MPIAIJ(Mat);

 15: EXTERN PetscErrorCode  MatCreate_BAIJ(Mat);
 16: EXTERN PetscErrorCode  MatCreate_SeqBAIJ(Mat);
 17: EXTERN PetscErrorCode  MatCreate_MPIBAIJ(Mat);

 19: EXTERN PetscErrorCode  MatCreate_SBAIJ(Mat);
 20: EXTERN PetscErrorCode  MatCreate_SeqSBAIJ(Mat);
 21: EXTERN PetscErrorCode  MatCreate_MPISBAIJ(Mat);

 23: EXTERN PetscErrorCode  MatCreate_Dense(Mat);
 24: EXTERN PetscErrorCode  MatCreate_SeqDense(Mat);
 25: EXTERN PetscErrorCode  MatCreate_MPIDense(Mat);

 27: EXTERN PetscErrorCode  MatCreate_MPIAdj(Mat);
 28: EXTERN PetscErrorCode  MatCreate_Shell(Mat);
 29: EXTERN PetscErrorCode  MatCreate_Composite(Mat);

 31: EXTERN PetscErrorCode  MatCreate_CSRPERM(Mat);
 32: EXTERN PetscErrorCode  MatCreate_SeqCSRPERM(Mat);
 33: EXTERN PetscErrorCode  MatCreate_MPICSRPERM(Mat);

 35: EXTERN PetscErrorCode  MatCreate_CRL(Mat);
 36: EXTERN PetscErrorCode  MatCreate_SeqCRL(Mat);
 37: EXTERN PetscErrorCode  MatCreate_MPICRL(Mat);

 39: EXTERN PetscErrorCode  MatCreate_Scatter(Mat);
 40: EXTERN PetscErrorCode  MatCreate_BlockMat(Mat);
 42: 
 43: /*
 44:     This is used by MatSetType() to make sure that at least one 
 45:     MatRegisterAll() is called. In general, if there is more than one
 46:     DLL, then MatRegisterAll() may be called several times.
 47: */
 48: EXTERN PetscTruth MatRegisterAllCalled;

 52: /*@C
 53:   MatRegisterAll - Registers all of the matrix types in PETSc

 55:   Not Collective

 57:   Level: advanced

 59: .keywords: KSP, register, all

 61: .seealso:  MatRegisterDestroy()
 62: @*/
 63: PetscErrorCode  MatRegisterAll(const char path[])
 64: {

 68:   MatRegisterAllCalled = PETSC_TRUE;

 70:   MatRegisterDynamic(MATMFFD,           path,"MatCreate_MFFD",    MatCreate_MFFD);

 72:   MatRegisterDynamic(MATMPIMAIJ,        path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 73:   MatRegisterDynamic(MATSEQMAIJ,        path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 74:   MatRegisterDynamic(MATMAIJ,           path,"MatCreate_MAIJ",    MatCreate_MAIJ);

 76:   MatRegisterDynamic(MATIS,             path,"MatCreate_IS",      MatCreate_IS);
 77:   MatRegisterDynamic(MATSHELL,          path,"MatCreate_Shell",   MatCreate_Shell);
 78:   MatRegisterDynamic(MATCOMPOSITE,      path,"MatCreate_Composite",   MatCreate_Composite);
 79: #if defined(PETSC_HAVE_BLOCKSOLVE95)
 80:   MatRegisterDynamic(MATMPIROWBS,       path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
 81: #endif
 82:   MatRegisterDynamic(MATAIJ,            path,"MatCreate_AIJ",         MatCreate_AIJ);
 83:   MatRegisterDynamic(MATMPIAIJ,         path,"MatCreate_MPIAIJ",      MatCreate_MPIAIJ);
 84:   MatRegisterDynamic(MATSEQAIJ,         path,"MatCreate_SeqAIJ",      MatCreate_SeqAIJ);

 86:   MatRegisterDynamic(MATCSRPERM,        path,"MatCreate_CSRPERM",  MatCreate_CSRPERM);
 87:   MatRegisterDynamic(MATMPICSRPERM,     path,"MatCreate_MPICSRPERM",  MatCreate_MPICSRPERM);
 88:   MatRegisterDynamic(MATSEQCSRPERM,     path,"MatCreate_SeqCSRPERM",  MatCreate_SeqCSRPERM);

 90:   MatRegisterDynamic(MATCRL,            path,"MatCreate_CRL",         MatCreate_CRL);
 91:   MatRegisterDynamic(MATSEQCRL,         path,"MatCreate_SeqCRL",      MatCreate_SeqCRL);
 92:   MatRegisterDynamic(MATMPICRL,         path,"MatCreate_MPICRL",      MatCreate_MPICRL);

 94:   MatRegisterDynamic(MATBAIJ,           path,"MatCreate_BAIJ",       MatCreate_BAIJ);
 95:   MatRegisterDynamic(MATMPIBAIJ,        path,"MatCreate_MPIBAIJ",    MatCreate_MPIBAIJ);
 96:   MatRegisterDynamic(MATSEQBAIJ,        path,"MatCreate_SeqBAIJ",    MatCreate_SeqBAIJ);

 98:   MatRegisterDynamic(MATSBAIJ,          path,"MatCreate_SBAIJ",     MatCreate_SBAIJ);
 99:   MatRegisterDynamic(MATMPISBAIJ,       path,"MatCreate_MPISBAIJ",  MatCreate_MPISBAIJ);
100:   MatRegisterDynamic(MATSEQSBAIJ,       path,"MatCreate_SeqSBAIJ",  MatCreate_SeqSBAIJ);

102:   MatRegisterDynamic(MATDENSE,          path,"MatCreate_Dense",     MatCreate_Dense);
103:   MatRegisterDynamic(MATMPIDENSE,       path,"MatCreate_MPIDense",  MatCreate_MPIDense);
104:   MatRegisterDynamic(MATSEQDENSE,       path,"MatCreate_SeqDense",  MatCreate_SeqDense);

106:   MatRegisterDynamic(MATMPIADJ,         path,"MatCreate_MPIAdj",    MatCreate_MPIAdj);
107:   MatRegisterDynamic(MATSCATTER,        path,"MatCreate_Scatter",   MatCreate_Scatter);
108:   MatRegisterDynamic(MATBLOCKMAT,       path,"MatCreate_BlockMat",   MatCreate_BlockMat);
109:   return(0);
110: }