Actual source code: matioall.c

  1: /*$Id: matioall.c,v 1.23 2001/03/23 23:22:45 balay Exp $*/

  3: #include "petscmat.h"

  5: EXTERN_C_BEGIN
  6: EXTERN int MatLoad_MPIRowbs(PetscViewer,MatType,Mat*);
  7: EXTERN int MatLoad_SeqAIJ(PetscViewer,MatType,Mat*);
  8: EXTERN int MatLoad_MPIAIJ(PetscViewer,MatType,Mat*);
  9: EXTERN int MatLoad_SeqBDiag(PetscViewer,MatType,Mat*);
 10: EXTERN int MatLoad_MPIBDiag(PetscViewer,MatType,Mat*);
 11: EXTERN int MatLoad_SeqDense(PetscViewer,MatType,Mat*);
 12: EXTERN int MatLoad_MPIDense(PetscViewer,MatType,Mat*);
 13: EXTERN int MatLoad_SeqBAIJ(PetscViewer,MatType,Mat*);
 14: EXTERN int MatLoad_SeqAdj(PetscViewer,MatType,Mat*);
 15: EXTERN int MatLoad_MPIBAIJ(PetscViewer,MatType,Mat*);
 16: EXTERN int MatLoad_SeqSBAIJ(PetscViewer,MatType,Mat*);
 17: EXTERN int MatLoad_MPISBAIJ(PetscViewer,MatType,Mat*);
 18: EXTERN int MatLoad_MPIRowbs(PetscViewer,MatType,Mat*);
 19: EXTERN_C_END
 20: extern PetscTruth MatLoadRegisterAllCalled;

 22: /*@C
 23:     MatLoadRegisterAll - Registers all standard matrix type routines to load
 24:         matrices from a binary file.

 26:   Not Collective

 28:   Level: developer

 30:   Notes: To prevent registering all matrix types; copy this routine to 
 31:          your source code and comment out the versions below that you do not need.

 33: .seealso: MatLoadRegister(), MatLoad()

 35: @*/
 36: int MatLoadRegisterAll(char *path)
 37: {

 41:   MatLoadRegisterAllCalled = PETSC_TRUE;
 42:   MatLoadRegisterDynamic(MATSEQAIJ,path,"MatLoad_SeqAIJ",MatLoad_SeqAIJ);
 43:   MatLoadRegisterDynamic(MATMPIAIJ,path,"MatLoad_MPIAIJ",MatLoad_MPIAIJ);
 44:   MatLoadRegisterDynamic(MATSEQBDIAG,path,"MatLoad_SeqBDiag",MatLoad_SeqBDiag);
 45:   MatLoadRegisterDynamic(MATMPIBDIAG,path,"MatLoad_MPIBDiag",MatLoad_MPIBDiag);
 46:   MatLoadRegisterDynamic(MATSEQDENSE,path,"MatLoad_SeqDense",MatLoad_SeqDense);
 47:   MatLoadRegisterDynamic(MATMPIDENSE,path,"MatLoad_MPIDense",MatLoad_MPIDense);
 48:   MatLoadRegisterDynamic(MATSEQBAIJ,path,"MatLoad_SeqBAIJ",MatLoad_SeqBAIJ);
 49:   MatLoadRegisterDynamic(MATMPIBAIJ,path,"MatLoad_MPIBAIJ",MatLoad_MPIBAIJ);
 50:   MatLoadRegisterDynamic(MATSEQSBAIJ,path,"MatLoad_SeqSBAIJ",MatLoad_SeqSBAIJ);
 51:   MatLoadRegisterDynamic(MATMPISBAIJ,path,"MatLoad_MPISBAIJ",MatLoad_MPISBAIJ);
 52: #if defined(PETSC_HAVE_BLOCKSOLVE) && !defined(__cplusplus)
 53:   MatLoadRegisterDynamic(MATMPIROWBS,path,"MatLoad_MPIRowbs",MatLoad_MPIRowbs);
 54: #endif
 55:   return(0);
 56: }

 58: EXTERN_C_BEGIN
 59: EXTERN int MatConvertTo_MPIAdj(Mat,MatType,Mat*);
 60: EXTERN_C_END

 62: /*@C
 63:     MatConvertRegisterAll - Registers all standard matrix type routines to convert to

 65:   Not Collective

 67:   Level: developer

 69:   Notes: To prevent registering all matrix types; copy this routine to 
 70:          your source code and comment out the versions below that you do not need.

 72: .seealso: MatLoadRegister(), MatLoad()

 74: @*/
 75: int MatConvertRegisterAll(char *path)
 76: {

 80:   MatConvertRegisterAllCalled = PETSC_TRUE;
 81:   MatConvertRegisterDynamic(MATMPIADJ,path,"MatConvertTo_MPIAdj",MatConvertTo_MPIAdj);
 82:   return(0);
 83: }