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