Actual source code: matregis.c

  1: /*$Id: matregis.c,v 1.8 2001/03/23 23:21:44 balay Exp $*/

  3: #include "petscmat.h"  /*I "petscmat.h" I*/

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

 30: /*@C
 31:   MatRegisterAll - Registers all of the matrix types in PETSc

 33:   Not Collective

 35:   Level: advanced

 37: .keywords: KSP, register, all

 39: .seealso:  MatRegisterDestroy()
 40: @*/
 41: int MatRegisterAll(char *path)
 42: {

 46:   MatRegisterAllCalled = PETSC_TRUE;

 48:   MatRegisterDynamic(MATMPIMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 49:   MatRegisterDynamic(MATSEQMAIJ, path,"MatCreate_MAIJ",    MatCreate_MAIJ);

 51:   MatRegisterDynamic(MATIS,      path,"MatCreate_IS",      MatCreate_IS);
 52:   MatRegisterDynamic(MATSHELL,   path,"MatCreate_Shell",   MatCreate_Shell);
 53: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(__cplusplus)
 54:   MatRegisterDynamic(MATMPIROWBS,path,"MatCreate_MPIRowbs",MatCreate_MPIRowbs);
 55: #endif

 57:   MatRegisterDynamic(MATMPIAIJ,  path,"MatCreate_MPIAIJ",  MatCreate_MPIAIJ);
 58:   MatRegisterDynamic(MATSEQAIJ,  path,"MatCreate_SeqAIJ",  MatCreate_SeqAIJ);

 60:   MatRegisterDynamic(MATMPIBAIJ,  path,"MatCreate_MPIBAIJ",  MatCreate_MPIBAIJ);
 61:   MatRegisterDynamic(MATSEQBAIJ,  path,"MatCreate_SeqBAIJ",  MatCreate_SeqBAIJ);

 63:   MatRegisterDynamic(MATMPISBAIJ,  path,"MatCreate_MPISBAIJ",  MatCreate_MPISBAIJ);
 64:   MatRegisterDynamic(MATSEQSBAIJ,  path,"MatCreate_SeqSBAIJ",  MatCreate_SeqSBAIJ);

 66:   MatRegisterDynamic(MATMPIBDIAG,  path,"MatCreate_MPIBDiag",  MatCreate_MPIBDiag);
 67:   MatRegisterDynamic(MATSEQBDIAG,  path,"MatCreate_SeqBDiag",  MatCreate_SeqBDiag);

 69:   MatRegisterDynamic(MATMPIDENSE,  path,"MatCreate_MPIDense",  MatCreate_MPIDense);
 70:   MatRegisterDynamic(MATSEQDENSE,  path,"MatCreate_SeqDense",  MatCreate_SeqDense);

 72:   MatRegisterDynamic(MATMPIADJ,    path,"MatCreate_MPIAdj",    MatCreate_MPIAdj);
 73:   return(0);
 74: }