Actual source code: dlregismat.c

  1: #define PETSCMAT_DLL

 3:  #include include/private/matimpl.h

  5: const char *MatOptions[] = {"ROW_ORIENTED","NEW_NONZERO_LOCATIONS",
  6:               "SYMMETRIC",
  7:               "STRUCTURALLY_SYMMETRIC",
  8:               "NEW_DIAGONALS",
  9:               "IGNORE_OFF_PROC_ENTRIES",
 10:               "NEW_NONZERO_LOCATION_ERR",
 11:               "NEW_NONZERO_ALLOCATION_ERR","USE_HASH_TABLE",
 12:               "KEEP_ZEROED_ROWS","IGNORE_ZERO_ENTRIES","USE_INODES",
 13:               "HERMITIAN",
 14:               "SYMMETRY_ETERNAL",
 15:               "USE_COMPRESSEDROW",
 16:               "IGNORE_LOWER_TRIANGULAR","ERROR_LOWER_TRIANGULAR","GETROW_UPPERTRIANGULAR","MatOption","MAT_",0};

 18: EXTERN PetscErrorCode  MatMFFDInitializePackage(const char[]);

 22: /*@C
 23:   MatInitializePackage - This function initializes everything in the Mat package. It is called
 24:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to MatCreate()
 25:   when using static libraries.

 27:   Input Parameter:
 28:   path - The dynamic library path, or PETSC_NULL

 30:   Level: developer

 32: .keywords: Mat, initialize, package
 33: .seealso: PetscInitialize()
 34: @*/
 35: PetscErrorCode  MatInitializePackage(const char path[])
 36: {
 37:   static PetscTruth initialized = PETSC_FALSE;
 38:   char              logList[256];
 39:   char              *className;
 40:   PetscTruth        opt;
 41:   PetscErrorCode    ierr;

 44:   /* Inialize subpackage */
 45:   MatMFFDInitializePackage(PETSC_NULL);
 46:   if (initialized) return(0);
 47:   initialized = PETSC_TRUE;
 48:   /* Register Classes */
 49:   PetscLogClassRegister(&MAT_COOKIE,              "Matrix");
 50:   PetscLogClassRegister(&MAT_FDCOLORING_COOKIE,   "Matrix FD Coloring");
 51:   PetscLogClassRegister(&MAT_PARTITIONING_COOKIE, "Matrix Partitioning");
 52:   PetscLogClassRegister(&MAT_NULLSPACE_COOKIE,    "Matrix Null Space");
 53:   /* Register Constructors */
 54:   MatRegisterAll(path);
 55:   /* Register Events */

114:   /* these may be specific to MPIAIJ matrices */



131:   /* Turn off high traffic events by default */
133:   /* Process info exclusions */
134:   PetscOptionsGetString(PETSC_NULL, "-info_exclude", logList, 256, &opt);
135:   if (opt) {
136:     PetscStrstr(logList, "mat", &className);
137:     if (className) {
138:       PetscInfoDeactivateClass(MAT_COOKIE);
139:     }
140:   }
141:   /* Process summary exclusions */
142:   PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
143:   if (opt) {
144:     PetscStrstr(logList, "mat", &className);
145:     if (className) {
147:     }
148:   }
149:   return(0);
150: }

152: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
156: /*
157:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

159:   This one registers all the matrix methods that are in the basic PETSc Matrix library.

161:   Input Parameter:
162:   path - library path
163:  */
164: PetscErrorCode  PetscDLLibraryRegister_petscmat(const char path[])
165: {

168:   PetscInitializeNoArguments(); if (ierr) return 1;

171:   /*
172:       If we got here then PETSc was properly loaded
173:   */
174:   MatInitializePackage(path);
175:   return(0);
176: }


180: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */