1
2 #include <../src/sys/classes/random/randomimpl.h>
3
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().
8
9 Level: developer
10
11 .seealso: PetscFinalize()
12 @*/
PetscRandomFinalizePackage(void)13 PetscErrorCode PetscRandomFinalizePackage(void)
14 {
15 PetscErrorCode ierr;
16
17 PetscFunctionBegin;
18 ierr = PetscFunctionListDestroy(&PetscRandomList);CHKERRQ(ierr);
19 PetscRandomPackageInitialized = PETSC_FALSE;
20 PetscRandomRegisterAllCalled = PETSC_FALSE;
21 PetscFunctionReturn(0);
22 }
23
24 /*@C
25 PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called
26 from PetscDLLibraryRegister_petsc() when using dynamic libraries, and on the first call to PetscRandomCreate()
27 when using shared or static libraries.
28
29 Level: developer
30
31 .seealso: PetscInitialize()
32 @*/
PetscRandomInitializePackage(void)33 PetscErrorCode PetscRandomInitializePackage(void)
34 {
35 char logList[256];
36 PetscBool opt,pkg;
37 PetscErrorCode ierr;
38
39 PetscFunctionBegin;
40 if (PetscRandomPackageInitialized) PetscFunctionReturn(0);
41 PetscRandomPackageInitialized = PETSC_TRUE;
42 /* Register Class */
43 ierr = PetscClassIdRegister("PetscRandom",&PETSC_RANDOM_CLASSID);CHKERRQ(ierr);
44 /* Register Constructors */
45 ierr = PetscRandomRegisterAll();CHKERRQ(ierr);
46 /* Process Info */
47 {
48 PetscClassId classids[1];
49
50 classids[0] = PETSC_RANDOM_CLASSID;
51 ierr = PetscInfoProcessClass("random", 1, classids);CHKERRQ(ierr);
52 }
53 /* Process summary exclusions */
54 ierr = PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr);
55 if (opt) {
56 ierr = PetscStrInList("random",logList,',',&pkg);CHKERRQ(ierr);
57 if (pkg) {ierr = PetscLogEventExcludeClass(PETSC_RANDOM_CLASSID);CHKERRQ(ierr);}
58 }
59 /* Register package finalizer */
60 ierr = PetscRegisterFinalize(PetscRandomFinalizePackage);CHKERRQ(ierr);
61 PetscFunctionReturn(0);
62 }
63
64
65
66