Actual source code: dlregis.c

  1: /*$Id: dlregis.c,v 1.19 2001/03/23 23:24:34 balay Exp $*/

 3:  #include petscmat.h

  5: #undef __FUNCT__  
  7: /*@C
  8:   MatInitializePackage - This function initializes everything in the Mat package. It is called
  9:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to MatCreate()
 10:   when using static libraries.

 12:   Input Parameter:
 13:   path - The dynamic library path, or PETSC_NULL

 15:   Level: developer

 17: .keywords: Mat, initialize, package
 18: .seealso: PetscInitialize()
 19: @*/
 20: int MatInitializePackage(char *path) {
 21:   static PetscTruth initialized = PETSC_FALSE;
 22:   char              logList[256];
 23:   char             *className;
 24:   PetscTruth        opt;
 25:   int               ierr;

 28:   if (initialized == PETSC_TRUE) return(0);
 29:   initialized = PETSC_TRUE;
 30:   /* Register Classes */
 31:   PetscLogClassRegister(&MAT_COOKIE,              "Matrix");
 32:   PetscLogClassRegister(&MAT_FDCOLORING_COOKIE,   "Matrix FD Coloring");
 33:   PetscLogClassRegister(&MAT_PARTITIONING_COOKIE, "Matrix Partitioning");
 34:   PetscLogClassRegister(&MAT_NULLSPACE_COOKIE,    "Matrix Null Space");
 35:   /* Register Constructors and Serializers */
 36:   MatRegisterAll(path);
 37:   /* Register Events */
 38:   PetscLogEventRegister(&MAT_Mult,                     "MatMult",          MAT_COOKIE);
 39:   PetscLogEventRegister(&MAT_MultMatrixFree,           "MatMultMatrixFre", MAT_COOKIE);
 40:   PetscLogEventRegister(&MAT_Mults,                    "MatMults",         MAT_COOKIE);
 41:   PetscLogEventRegister(&MAT_MultConstrained,          "MatMultConstr",    MAT_COOKIE);
 42:   PetscLogEventRegister(&MAT_MultAdd,                  "MatMultAdd",       MAT_COOKIE);
 43:   PetscLogEventRegister(&MAT_MultTranspose,            "MatMultTranspose", MAT_COOKIE);
 44:   PetscLogEventRegister(&MAT_MultTransposeConstrained, "MatMultTrConstr",  MAT_COOKIE);
 45:   PetscLogEventRegister(&MAT_MultTransposeAdd,         "MatMultTrAdd",     MAT_COOKIE);
 46:   PetscLogEventRegister(&MAT_Solve,                    "MatSolve",         MAT_COOKIE);
 47:   PetscLogEventRegister(&MAT_Solves,                   "MatSolves",        MAT_COOKIE);
 48:   PetscLogEventRegister(&MAT_SolveAdd,                 "MatSolveAdd",      MAT_COOKIE);
 49:   PetscLogEventRegister(&MAT_SolveTranspose,           "MatSolveTranspos", MAT_COOKIE);
 50:   PetscLogEventRegister(&MAT_SolveTransposeAdd,        "MatSolveTrAdd",    MAT_COOKIE);
 51:   PetscLogEventRegister(&MAT_Relax,                    "MatRelax",         MAT_COOKIE);
 52:   PetscLogEventRegister(&MAT_ForwardSolve,             "MatForwardSolve",  MAT_COOKIE);
 53:   PetscLogEventRegister(&MAT_BackwardSolve,            "MatBackwardSolve", MAT_COOKIE);
 54:   PetscLogEventRegister(&MAT_LUFactor,                 "MatLUFactor",      MAT_COOKIE);
 55:   PetscLogEventRegister(&MAT_LUFactorSymbolic,         "MatLUFactorSym",   MAT_COOKIE);
 56:   PetscLogEventRegister(&MAT_LUFactorNumeric,          "MatLUFactorNum",   MAT_COOKIE);
 57:   PetscLogEventRegister(&MAT_CholeskyFactor,           "MatCholeskyFctr",  MAT_COOKIE);
 58:   PetscLogEventRegister(&MAT_CholeskyFactorSymbolic,   "MatCholFctrSym",   MAT_COOKIE);
 59:   PetscLogEventRegister(&MAT_CholeskyFactorNumeric,    "MatCholFctrNum",   MAT_COOKIE);
 60:   PetscLogEventRegister(&MAT_ILUFactor,                "MatILUFactor",     MAT_COOKIE);
 61:   PetscLogEventRegister(&MAT_ILUFactorSymbolic,        "MatILUFactorSym",  MAT_COOKIE);
 62:   PetscLogEventRegister(&MAT_ICCFactorSymbolic,        "MatICCFactorSym",  MAT_COOKIE);
 63:   PetscLogEventRegister(&MAT_Copy,                     "MatCopy",          MAT_COOKIE);
 64:   PetscLogEventRegister(&MAT_Convert,                  "MatConvert",       MAT_COOKIE);
 65:   PetscLogEventRegister(&MAT_Scale,                    "MatScale",         MAT_COOKIE);
 66:   PetscLogEventRegister(&MAT_AssemblyBegin,            "MatAssemblyBegin", MAT_COOKIE);
 67:   PetscLogEventRegister(&MAT_AssemblyEnd,              "MatAssemblyEnd",   MAT_COOKIE);
 68:   PetscLogEventRegister(&MAT_SetValues,                "MatSetValues",     MAT_COOKIE);
 69:   PetscLogEventRegister(&MAT_GetValues,                "MatGetValues",     MAT_COOKIE);
 70:   PetscLogEventRegister(&MAT_GetRow,                   "MatGetRow",        MAT_COOKIE);
 71:   PetscLogEventRegister(&MAT_GetSubMatrices,           "MatGetSubMatrice", MAT_COOKIE);
 72:   PetscLogEventRegister(&MAT_GetColoring,              "MatGetColoring",   MAT_COOKIE);
 73:   PetscLogEventRegister(&MAT_GetOrdering,              "MatGetOrdering",   MAT_COOKIE);
 74:   PetscLogEventRegister(&MAT_IncreaseOverlap,          "MatIncreaseOvrlp", MAT_COOKIE);
 75:   PetscLogEventRegister(&MAT_Partitioning,             "MatPartitioning",  MAT_PARTITIONING_COOKIE);
 76:   PetscLogEventRegister(&MAT_ZeroEntries,              "MatZeroEntries",   MAT_COOKIE);
 77:   PetscLogEventRegister(&MAT_Load,                     "MatLoad",          MAT_COOKIE);
 78:   PetscLogEventRegister(&MAT_View,                     "MatView",          MAT_COOKIE);
 79:   PetscLogEventRegister(&MAT_AXPY,                     "MatAXPY",          MAT_COOKIE);
 80:   PetscLogEventRegister(&MAT_FDColoringCreate,         "MatFDColorCreate", MAT_FDCOLORING_COOKIE);
 81:   PetscLogEventRegister(&MAT_FDColoringApply,          "MatFDColorApply",  MAT_FDCOLORING_COOKIE);
 82:   PetscLogEventRegister(&MAT_Transpose,                "MatTranspose",     MAT_COOKIE);
 83:   /* Turn off high traffic events by default */
 84:   PetscLogEventSetActiveAll(MAT_SetValues, PETSC_FALSE);
 85:   /* Process info exclusions */
 86:   PetscOptionsGetString(PETSC_NULL, "-log_info_exclude", logList, 256, &opt);
 87:   if (opt == PETSC_TRUE) {
 88:     PetscStrstr(logList, "mat", &className);
 89:     if (className) {
 90:       PetscLogInfoDeactivateClass(MAT_COOKIE);
 91:     }
 92:   }
 93:   /* Process summary exclusions */
 94:   PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
 95:   if (opt == PETSC_TRUE) {
 96:     PetscStrstr(logList, "mat", &className);
 97:     if (className) {
 98:       PetscLogEventDeactivateClass(MAT_COOKIE);
 99:     }
100:   }
101:   return(0);
102: }

104: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
105: EXTERN_C_BEGIN
106: #undef __FUNCT__  
108: /*
109:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

111:   This one registers all the TS methods that are in the basic PETSc Matrix library.

113:   Input Parameter:
114:   path - library path
115:  */
116: int PetscDLLibraryRegister(char *path)
117: {

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

123:   /*
124:       If we got here then PETSc was properly loaded
125:   */
126:   MatInitializePackage(path);
127:   return(0);
128: }
129: EXTERN_C_END

131: /* --------------------------------------------------------------------------*/
132: static char *contents = "PETSc Matrix library. n";
133: static char *authors  = PETSC_AUTHOR_INFO;

135:  #include src/sys/src/utils/dlregis.h

137: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */