Actual source code: dlregis.c
1: #ifdef PETSC_RCS_HEADER
2: static char vcid[] = "$Id: dlregis.c,v 1.1 2000/01/10 06:34:46 knepley Exp $";
3: #endif
5: #include petscao.h
6: #include petscda.h
8: /*@C
9: DMInitializePackage - This function initializes everything in the DM package. It is called
10: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to AOCreate()
11: or DACreate() when using static libraries.
13: Input Parameter:
14: path - The dynamic library path, or PETSC_NULL
16: Level: developer
18: .keywords: AO, DA, initialize, package
19: .seealso: PetscInitialize()
20: @*/
21: int DMInitializePackage(char *path) {
22: static PetscTruth initialized = PETSC_FALSE;
23: char logList[256];
24: char *className;
25: PetscTruth opt;
26: int ierr;
29: if (initialized == PETSC_TRUE) return(0);
30: initialized = PETSC_TRUE;
31: /* Register Classes */
32: PetscLogClassRegister(&AO_COOKIE, "Application Order");
33: PetscLogClassRegister(&AODATA_COOKIE, "Application Data");
34: PetscLogClassRegister(&DA_COOKIE, "Distributed array");
35: /* Register Constructors and Serializers */
36: AOSerializeRegisterAll(path);
37: /* Register Events */
38: PetscLogEventRegister(&AOEvents[AO_PetscToApplication], "AOPetscToApplication", AO_COOKIE);
39: PetscLogEventRegister(&AOEvents[AO_ApplicationToPetsc], "AOApplicationToPetsc", AO_COOKIE);
40: PetscLogEventRegister(&DAEvents[DA_GlobalToLocal], "DAGlobalToLocal", DA_COOKIE);
41: PetscLogEventRegister(&DAEvents[DA_LocalToGlobal], "DALocalToGlobal", DA_COOKIE);
42: /* Process info exclusions */
43: PetscOptionsGetString(PETSC_NULL, "-log_info_exclude", logList, 256, &opt);
44: if (opt == PETSC_TRUE) {
45: PetscStrstr(logList, "ao", &className);
46: if (className) {
47: PetscLogInfoDeactivateClass(AO_COOKIE);
48: }
49: PetscStrstr(logList, "da", &className);
50: if (className) {
51: PetscLogInfoDeactivateClass(DA_COOKIE);
52: }
53: }
54: /* Process summary exclusions */
55: PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
56: if (opt == PETSC_TRUE) {
57: PetscStrstr(logList, "ao", &className);
58: if (className) {
59: PetscLogEventDeactivateClass(AO_COOKIE);
60: }
61: PetscStrstr(logList, "da", &className);
62: if (className) {
63: PetscLogEventDeactivateClass(DA_COOKIE);
64: }
65: }
66: return(0);
67: }
69: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
70: EXTERN_C_BEGIN
71: /*
72: PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.
74: This one registers all the mesh generators and partitioners that are in
75: the basic DM library.
77: Input Parameter:
78: path - library path
79: */
80: int PetscDLLibraryRegister(char *path)
81: {
84: PetscInitializeNoArguments();
85: if (ierr) return(1);
87: /*
88: If we got here then PETSc was properly loaded
89: */
90: DMInitializePackage(path);
91: return(0);
92: }
93: EXTERN_C_END
95: /* --------------------------------------------------------------------------*/
96: static char *contents = "PETSc Distributed Structures library, includesn
97: Application Orderings, Application Data, and Distributed Arrays";
98: static char *authors = PETSC_AUTHOR_INFO;
100: #include src/sys/src/utils/dlregis.h
102: /* --------------------------------------------------------------------------*/
104: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */