Actual source code: dlregis.c

  1: #ifdef PETSC_RCS_HEADER
  2: static char vcid[] = "$Id: dlregis.c,v 1.1 2000/01/10 03:54:20 knepley Exp $";
  3: #endif

 5:  #include gvec.h

  7: /*@C
  8:   GridInitializePackage - This function initializes everything in the Grid package. It is called
  9:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to GridCreate()
 10:   when using static libraries.

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

 15:   Level: developer

 17: .keywords: Grid, initialize, package
 18: .seealso: PetscInitialize()
 19: @*/
 20: int GridInitializePackage(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(&DISCRETIZATION_COOKIE, "Discretization");
 32:   PetscLogClassRegister(&GRID_COOKIE,           "Grid");
 33:   PetscLogClassRegister(&ELEMENT_VEC_COOKIE,    "Element Vector");
 34:   PetscLogClassRegister(&ELEMENT_MAT_COOKIE,    "Element Matrix");
 35:   PetscLogClassRegister(&VAR_ORDER_COOKIE,      "VariableOrdering");
 36:   PetscLogClassRegister(&CLASS_MAP_COOKIE,      "Field Class Map");
 37:   /* Register Constructors and Serializers */
 38:   GridRegisterAll(path);
 39:   GridSerializeRegisterAll(path);
 40:   FieldClassMapRegisterAll(path);
 41:   FieldClassMapSerializeRegisterAll(path);
 42:   DiscretizationRegisterAll(path);
 43:   DiscretizationSerializeRegisterAll(path);
 44:   /* Register Events */
 45:   PetscLogEventRegister(&GRID_Reform,                        "GridReform",       GRID_COOKIE);
 46:   PetscLogEventRegister(&GRID_SetUp,                         "GridSetUp",        GRID_COOKIE);
 47:   PetscLogEventRegister(&GVEC_EvaluateFunction,              "GVecEvalFunc",     VEC_COOKIE);
 48:   PetscLogEventRegister(&GVEC_EvaluateFunctionCollective,    "GVecEvalFuncColl", VEC_COOKIE);
 49:   PetscLogEventRegister(&GVEC_EvaluateRhs,                   "GVecEvaluateRhs",  VEC_COOKIE);
 50:   PetscLogEventRegister(&GVEC_EvaluateJacobian,              "GVecEvaluateJac",  VEC_COOKIE);
 51:   PetscLogEventRegister(&GVEC_SetBoundary,                   "GVecSetBoundary",  VEC_COOKIE);
 52:   PetscLogEventRegister(&GVEC_InterpolateField,              "GVecInterpolate",  VEC_COOKIE);
 53:   PetscLogEventRegister(&GVEC_InterpolateFieldBatch,         "GVecInterpBatch",  VEC_COOKIE);
 54:   PetscLogEventRegister(&GVEC_InterpolateFieldBatchParallel, "GVecInterpBatchP", VEC_COOKIE);
 55:   PetscLogEventRegister(&GVEC_InterpolateFieldBatchCalc,     "GVecInterpBatchC", VEC_COOKIE);
 56:   PetscLogEventRegister(&GMAT_CreateRectangular,             "GMatCreateRect",   MAT_COOKIE);
 57:   PetscLogEventRegister(&GMAT_EvaluateOperatorGalerkin,      "GMatEvalOpGaler",  MAT_COOKIE);
 58:   PetscLogEventRegister(&GMAT_EvaluateSystemMatrix,          "GMatEvalSysMat",   MAT_COOKIE);
 59:   PetscLogEventRegister(&GMAT_SetBoundary,                   "GMatSetBoundary",  MAT_COOKIE);
 60:   PetscLogEventRegister(&GMAT_MatMultConstrained,            "GMatMultConstr",   MAT_COOKIE);
 61:   PetscLogEventRegister(&GMAT_MatMultTransposeConstrained,   "GMatMultTRConstr", MAT_COOKIE);
 62:   /* Process info exclusions */
 63:   PetscOptionsGetString(PETSC_NULL, "-log_info_exclude", logList, 256, &opt);
 64:   if (opt == PETSC_TRUE) {
 65:     PetscStrstr(logList, "grid", &className);
 66:     if (className) {
 67:       PetscLogInfoDeactivateClass(GRID_COOKIE);
 68:     }
 69:   }
 70:   /* Process summary exclusions */
 71:   PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
 72:   if (opt == PETSC_TRUE) {
 73:     PetscStrstr(logList, "grid", &className);
 74:     if (className) {
 75:       PetscLogEventDeactivateClass(GRID_COOKIE);
 76:     }
 77:   }
 78:   return(0);
 79: }

 81: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
 82: EXTERN_C_BEGIN
 83: /*
 84:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

 86:   This one registers all the grid vectors and matrices that are in the basic Grid library.

 88:   Input Parameter:
 89:   path - library path
 90: */
 91: int PetscDLLibraryRegister(char *path) {

 94:   PetscInitializeNoArguments();
 95:   if (ierr) return(1);
 96:   /*
 97:       If we got here then PETSc was properly loaded
 98:   */
 99:   GridInitializePackage(path);
100:   return(0);
101: }
102: EXTERN_C_END

104: /* --------------------------------------------------------------------------*/
105: static char *contents = "PETSc Grid libraryn";

107: static char *authors = "Matt Knepley    knepley@cs.purdue.edun
108:   http://www.cs.purdue.edu/homes/knepley/comp_fluidn";

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

112: /* --------------------------------------------------------------------------*/

114: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */