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 @*/ 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 @*/ 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 exclusions */ 47 ierr = PetscOptionsGetString(NULL,NULL,"-info_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr); 48 if (opt) { 49 ierr = PetscStrInList("random",logList,',',&pkg);CHKERRQ(ierr); 50 if (pkg) {ierr = PetscInfoDeactivateClass(PETSC_RANDOM_CLASSID);CHKERRQ(ierr);} 51 } 52 /* Process summary exclusions */ 53 ierr = PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr); 54 if (opt) { 55 ierr = PetscStrInList("random",logList,',',&pkg);CHKERRQ(ierr); 56 if (pkg) {ierr = PetscLogEventExcludeClass(PETSC_RANDOM_CLASSID);CHKERRQ(ierr);} 57 } 58 /* Register package finalizer */ 59 ierr = PetscRegisterFinalize(PetscRandomFinalizePackage);CHKERRQ(ierr); 60 PetscFunctionReturn(0); 61 } 62 63 64 65