Actual source code: matregis.c

  2: #include <petscmat.h>  /*I "petscmat.h" I*/



 12: #if defined(PETSC_HAVE_PTHREADCLASSES)
 15: #endif










 47: #if defined PETSC_HAVE_CUSP
 50: #endif

 52: #if defined PETSC_HAVE_MATIM
 54: #endif

 56: #if defined PETSC_HAVE_FFTW
 58: #endif
 60: 
 61: /*
 62:     This is used by MatSetType() to make sure that at least one 
 63:     MatRegisterAll() is called. In general, if there is more than one
 64:     DLL, then MatRegisterAll() may be called several times.
 65: */

 70: /*@C
 71:   MatRegisterAll - Registers all of the matrix types in PETSc

 73:   Not Collective

 75:   Level: advanced

 77: .keywords: KSP, register, all

 79: .seealso:  MatRegisterDestroy()
 80: @*/
 81: PetscErrorCode  MatRegisterAll(const char path[])
 82: {

 86:   MatRegisterAllCalled = PETSC_TRUE;

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

 90:   MatRegisterDynamic(MATMPIMAIJ,        path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 91:   MatRegisterDynamic(MATSEQMAIJ,        path,"MatCreate_MAIJ",    MatCreate_MAIJ);
 92:   MatRegisterDynamic(MATMAIJ,           path,"MatCreate_MAIJ",    MatCreate_MAIJ);

 94:   MatRegisterDynamic(MATIS,             path,"MatCreate_IS",      MatCreate_IS);
 95:   MatRegisterDynamic(MATSHELL,          path,"MatCreate_Shell",   MatCreate_Shell);
 96:   MatRegisterDynamic(MATCOMPOSITE,      path,"MatCreate_Composite",   MatCreate_Composite);

 98:   MatRegisterBaseName(MATAIJ,MATSEQAIJ,MATMPIAIJ);
 99:   MatRegisterDynamic(MATMPIAIJ,         path,"MatCreate_MPIAIJ",      MatCreate_MPIAIJ);
100:   MatRegisterDynamic(MATSEQAIJ,         path,"MatCreate_SeqAIJ",      MatCreate_SeqAIJ);
101: #if defined(PETSC_HAVE_PTHREADCLASSES)
102:   MatRegisterBaseName(MATAIJPTHREAD,MATSEQAIJPTHREAD,0);
103:   MatRegisterDynamic(MATSEQAIJPTHREAD,  path,"MatCreate_SeqAIJPThread",      MatCreate_SeqAIJPThread);
104: #endif

106:   MatRegisterBaseName(MATAIJPERM,MATSEQAIJPERM,MATMPIAIJPERM);
107:   MatRegisterDynamic(MATMPIAIJPERM,     path,"MatCreate_MPIAIJPERM", MatCreate_MPIAIJPERM);
108:   MatRegisterDynamic(MATSEQAIJPERM,     path,"MatCreate_SeqAIJPERM", MatCreate_SeqAIJPERM);

110:   MatRegisterBaseName(MATAIJCRL,MATSEQAIJCRL,MATMPIAIJCRL);
111:   MatRegisterDynamic(MATSEQAIJCRL,      path,"MatCreate_SeqAIJCRL",  MatCreate_SeqAIJCRL);
112:   MatRegisterDynamic(MATMPIAIJCRL,      path,"MatCreate_MPIAIJCRL",  MatCreate_MPIAIJCRL);

114:   MatRegisterBaseName(MATBAIJ,MATSEQBAIJ,MATMPIBAIJ);
115:   MatRegisterDynamic(MATMPIBAIJ,        path,"MatCreate_MPIBAIJ",    MatCreate_MPIBAIJ);
116:   MatRegisterDynamic(MATSEQBAIJ,        path,"MatCreate_SeqBAIJ",    MatCreate_SeqBAIJ);

118:   MatRegisterBaseName(MATSBAIJ,MATSEQSBAIJ,MATMPISBAIJ);
119:   MatRegisterDynamic(MATMPISBAIJ,       path,"MatCreate_MPISBAIJ",  MatCreate_MPISBAIJ);
120:   MatRegisterDynamic(MATSEQSBAIJ,       path,"MatCreate_SeqSBAIJ",  MatCreate_SeqSBAIJ);

122:   MatRegisterBaseName(MATBSTRM,MATSEQBSTRM,MATMPIBSTRM);
123:   MatRegisterDynamic(MATMPIBSTRM,        path,"MatCreate_MPIBSTRM",    MatCreate_MPIBSTRM);
124:   MatRegisterDynamic(MATSEQBSTRM,        path,"MatCreate_SeqBSTRM",    MatCreate_SeqBSTRM);

126:   MatRegisterBaseName(MATSBSTRM,MATSEQSBSTRM,MATMPISBSTRM);
127:   MatRegisterDynamic(MATMPISBSTRM,       path,"MatCreate_MPISBSTRM",  MatCreate_MPISBSTRM);
128:   MatRegisterDynamic(MATSEQSBSTRM,       path,"MatCreate_SeqSBSTRM",  MatCreate_SeqSBSTRM);

130:   MatRegisterBaseName(MATDENSE,MATSEQDENSE,MATMPIDENSE);
131:   MatRegisterDynamic(MATMPIDENSE,       path,"MatCreate_MPIDense",  MatCreate_MPIDense);
132:   MatRegisterDynamic(MATSEQDENSE,       path,"MatCreate_SeqDense",  MatCreate_SeqDense);

134:   MatRegisterDynamic(MATMPIADJ,         path,"MatCreate_MPIAdj",    MatCreate_MPIAdj);
135:   MatRegisterDynamic(MATSCATTER,        path,"MatCreate_Scatter",   MatCreate_Scatter);
136:   MatRegisterDynamic(MATBLOCKMAT,       path,"MatCreate_BlockMat",  MatCreate_BlockMat);
137:   MatRegisterDynamic(MATNEST,           path,"MatCreate_Nest",      MatCreate_Nest);

139:   /*MatRegisterDynamic(MATDD,             path,"MatCreate_DD",   MatCreate_DD);*/
140: #if defined PETSC_HAVE_MATIM
141:   MatRegisterDynamic(MATIM,             path,"MatCreate_IM",   MatCreate_IM);
142: #endif

144: #if defined PETSC_HAVE_CUSP
145:   MatRegisterBaseName(MATAIJCUSP,MATSEQAIJCUSP,MATMPIAIJCUSP);
146:   MatRegisterDynamic(MATSEQAIJCUSP,     path,"MatCreate_SeqAIJCUSP",  MatCreate_SeqAIJCUSP);
147:   MatRegisterDynamic(MATMPIAIJCUSP,     path,"MatCreate_MPIAIJCUSP",  MatCreate_MPIAIJCUSP);
148: #endif

150: #if defined PETSC_HAVE_FFTW
151:   MatRegisterDynamic(MATFFTW,           path,"MatCreate_FFTW",        MatCreate_FFTW);
152: #endif
153:   return(0);
154: }