Actual source code: dlregisrand.c
petsc-3.11.4 2019-09-28
2: #include <../src/sys/classes/random/randomimpl.h>
4: static PetscBool PetscRandomPackageInitialized = PETSC_FALSE;
5: /*@C
6: PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the Random package. It is
7: called from PetscFinalize().
9: Level: developer
11: .keywords: Petsc, destroy, package, mathematica
12: .seealso: PetscFinalize()
13: @*/
14: PetscErrorCode PetscRandomFinalizePackage(void)
15: {
19: PetscFunctionListDestroy(&PetscRandomList);
20: PetscRandomPackageInitialized = PETSC_FALSE;
21: PetscRandomRegisterAllCalled = PETSC_FALSE;
22: return(0);
23: }
25: /*@C
26: PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called
27: from PetscDLLibraryRegister_petsc() when using dynamic libraries, and on the first call to PetscRandomCreate()
28: when using shared or static libraries.
30: Level: developer
32: .keywords: PetscRandom, initialize, package
33: .seealso: PetscInitialize()
34: @*/
35: PetscErrorCode PetscRandomInitializePackage(void)
36: {
37: char logList[256];
38: PetscBool opt,pkg;
42: if (PetscRandomPackageInitialized) return(0);
43: PetscRandomPackageInitialized = PETSC_TRUE;
44: /* Register Class */
45: PetscClassIdRegister("PetscRandom",&PETSC_RANDOM_CLASSID);
46: /* Register Constructors */
47: PetscRandomRegisterAll();
48: /* Process info exclusions */
49: PetscOptionsGetString(NULL,NULL,"-info_exclude",logList,sizeof(logList),&opt);
50: if (opt) {
51: PetscStrInList("random",logList,',',&pkg);
52: if (pkg) {PetscInfoDeactivateClass(PETSC_RANDOM_CLASSID);}
53: }
54: /* Process summary exclusions */
55: PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);
56: if (opt) {
57: PetscStrInList("random",logList,',',&pkg);
58: if (pkg) {PetscLogEventExcludeClass(PETSC_RANDOM_CLASSID);}
59: }
60: /* Register package finalizer */
61: PetscRegisterFinalize(PetscRandomFinalizePackage);
62: return(0);
63: }