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 */