Actual source code: dlregisdm.c
2: #include <../src/vec/is/ao/aoimpl.h>
4: static PetscBool AOPackageInitialized = PETSC_FALSE;
6: /*@C
7: AOFinalizePackage - This function finalizes everything in the `AO` package. It is called
8: from `PetscFinalize()`.
10: Level: developer
12: .seealso: `AOInitializePackage()`, `PetscInitialize()`
13: @*/
14: PetscErrorCode AOFinalizePackage(void)
15: {
16: PetscFunctionListDestroy(&AOList);
17: AOPackageInitialized = PETSC_FALSE;
18: AORegisterAllCalled = PETSC_FALSE;
19: return 0;
20: }
22: /*@C
23: AOInitializePackage - This function initializes everything in the `AO` package. It is called
24: from `PetscDLLibraryRegister_petscvec()` when using dynamic libraries, and on the first call to `AOCreate()`
25: when using static or shared libraries.
27: Level: developer
29: .seealso: `AOFinalizePackage()`, `PetscInitialize()`
30: @*/
31: PetscErrorCode AOInitializePackage(void)
32: {
33: char logList[256];
34: PetscBool opt, pkg;
36: if (AOPackageInitialized) return 0;
37: AOPackageInitialized = PETSC_TRUE;
38: /* Register Classes */
39: PetscClassIdRegister("Application Order", &AO_CLASSID);
40: /* Register Constructors */
41: AORegisterAll();
42: /* Register Events */
43: PetscLogEventRegister("AOPetscToApplication", AO_CLASSID, &AO_PetscToApplication);
44: PetscLogEventRegister("AOApplicationToPetsc", AO_CLASSID, &AO_ApplicationToPetsc);
45: /* Process Info */
46: {
47: PetscClassId classids[1];
49: classids[0] = AO_CLASSID;
50: PetscInfoProcessClass("ao", 1, classids);
51: }
52: /* Process summary exclusions */
53: PetscOptionsGetString(NULL, NULL, "-log_exclude", logList, sizeof(logList), &opt);
54: if (opt) {
55: PetscStrInList("ao", logList, ',', &pkg);
56: if (pkg) PetscLogEventExcludeClass(AO_CLASSID);
57: }
58: /* Register package finalizer */
59: PetscRegisterFinalize(AOFinalizePackage);
60: return 0;
61: }